🎉 Курс “Основы ООП на C++” — уже доступен!
Друзья, если Вам интересен не только язык Java, но и С++, то приглашаю Вас на свой новый курс "Основы ООП на С++" .
В меню: инкапсуляция, наследование и полиморфизм под соусом C++. Видео дублируется текстом, много задач - все, как мы любим...
💙 Для друзей — скидка 40% до конца декабря.
А от Вас, как всегда, жду критики "косяков" и честный отзыв!
Друзья, если Вам интересен не только язык Java, но и С++, то приглашаю Вас на свой новый курс "Основы ООП на С++" .
В меню: инкапсуляция, наследование и полиморфизм под соусом C++. Видео дублируется текстом, много задач - все, как мы любим...
💙 Для друзей — скидка 40% до конца декабря.
А от Вас, как всегда, жду критики "косяков" и честный отзыв!
👏10❤3🎉1
Итоги Stepik Awards
Вчера состоялось ежегодное вручение премии Stepik Awards. 💥💥💥
Мой курс “Прокачай Java” был выдвинут в номинации “Лучший педагогический дизайн”.
К сожалению, премию я не получила… Но считаю, что уступить “Поколению Пайтон” не стыдно!😃
Приятно, что заметили среди многих прекрасных курсов… Всем Степика!
Вчера состоялось ежегодное вручение премии Stepik Awards. 💥💥💥
Мой курс “Прокачай Java” был выдвинут в номинации “Лучший педагогический дизайн”.
К сожалению, премию я не получила… Но считаю, что уступить “Поколению Пайтон” не стыдно!😃
Приятно, что заметили среди многих прекрасных курсов… Всем Степика!
👍39❤11
Как у Вас с Новогодним настроением?🎄🎄🎄
Я сегодня к нему немного приблизилась: прошла Курс для тех, кто хорошо себя вел в этом году. 🎅 Это важно: остановиться посреди гонки декабря, подготовки к экзаменам/покупок подарков/нарезки оливье. Подвести итоги и сказать “спасибо” себе за все! За то, что старался учиться, смог найти мотивацию. За то, что был добр к другим и к себе. За то, что стал лучше себя прошлогоднего!⛄️
А еще хочу предложить идею, как можно порадовать близких и друзей: на Степике появились сертификаты на покупку курсов. Ну, и конечно, всегда можно купить любой курс в подарок. Ведь каждый может быть Дедом Морозом/Санта Клаусом.
Я сегодня к нему немного приблизилась: прошла Курс для тех, кто хорошо себя вел в этом году. 🎅 Это важно: остановиться посреди гонки декабря, подготовки к экзаменам/покупок подарков/нарезки оливье. Подвести итоги и сказать “спасибо” себе за все! За то, что старался учиться, смог найти мотивацию. За то, что был добр к другим и к себе. За то, что стал лучше себя прошлогоднего!⛄️
А еще хочу предложить идею, как можно порадовать близких и друзей: на Степике появились сертификаты на покупку курсов. Ну, и конечно, всегда можно купить любой курс в подарок. Ведь каждый может быть Дедом Морозом/Санта Клаусом.
Stepik: online education
Курс для тех, кто хорошо вёл себя в этом году
Тёплый новогодний курс-история от Деда Мороза и команды Stepik, он для тех, кто много учился, старался, переживал, ошибался и продолжал идти дальше — и в этой суете немного потерял ощущение праздника.
🔥12👍2
Праздник к нам приходит…
Рождество – самый милый и самый семейный праздник в году… А у нас в Беларуси он отмечается дважды: 25 декабря и 7 января. А между ними – еще и Новый Год!
И я традиционно не могу Вас оставить без подарка:
🎁15% скидки от Рождества до Рождества на все курсы по Java:
Основы языка Java
Объектно-ориентированное программирование на Java
Прокачай Java
Java Core: программа курсов
С Рождеством, мои дорогие студенты! 🎄🎄🎄
Рождество – самый милый и самый семейный праздник в году… А у нас в Беларуси он отмечается дважды: 25 декабря и 7 января. А между ними – еще и Новый Год!
И я традиционно не могу Вас оставить без подарка:
🎁15% скидки от Рождества до Рождества на все курсы по Java:
Основы языка Java
Объектно-ориентированное программирование на Java
Прокачай Java
Java Core: программа курсов
С Рождеством, мои дорогие студенты! 🎄🎄🎄
Stepik: online education
Основы языка Java
Откройте дверь в мир возможностей Java! С этим курсом Вы создадите фундамент своих знаний: научитесь писать простые программы, разберетесь с типами данных, алгоритмическими конструкциями, массивами и строками, поймете принципы создания статических методов…
🎉9❤2👍2
Повышение цен :(
Друзья, я решила пересмотреть политику цен на курсы по Java:
1) Курс по основам Java сделать бесплатным;
2) А цены на два следующих курса немного повысить. Ничего личного, просто инфляция.
Но у Вас есть три дня до понедельника, чтобы купить эти курсы по старой цене и со скидкой 10%:
• Основы объектно-ориентированного программирования на Java
• Прокачай Java
Друзья, я решила пересмотреть политику цен на курсы по Java:
1) Курс по основам Java сделать бесплатным;
2) А цены на два следующих курса немного повысить. Ничего личного, просто инфляция.
Но у Вас есть три дня до понедельника, чтобы купить эти курсы по старой цене и со скидкой 10%:
• Основы объектно-ориентированного программирования на Java
• Прокачай Java
Stepik: online education
Объектно-ориентированное программирование на Java
Окунитесь в мир объектно-ориентированного программирования! Научитесь создавать и использовать классы, разберитесь с принципами ООП и их реализацией в Java, изучите паттерны проектирования приложений.
Если Вы новичок в ООП и к тому же изучаете Java – этот…
Если Вы новичок в ООП и к тому же изучаете Java – этот…
👍5🤝5
На чём «застревают» новички при работе с массивами в Java?
1️⃣ Объявили массив — и сразу обращаются к элементам:
При таком объявлении память под элементы ещё не выделена, поэтому обращаться к
Сначала нужно создать массив через
2️⃣ Выход за границы массива
Индексация в массивах начинается с нуля, поэтому допустимые индексы: 0, 1, 2, 3 (а
Последний элемент массива всегда имеет индекс
размер_массива - 1.
3️⃣ Ожидание копирования элементов при присваивании:
Такое присваивание не копирует массив.
Копируется ссылка, и теперь
Изменения через
💡 Кстати, эти и другие тонкие моменты работы с массивами подробно разбираем в модуле 4 курса «Основы языка Java» 😊
1️⃣ Объявили массив — и сразу обращаются к элементам:
int[] a;
a[0] = 5;
int[] a — это только ссылка на массив, а не сам массив.При таком объявлении память под элементы ещё не выделена, поэтому обращаться к
a[0] нельзя.Сначала нужно создать массив через
new:int[] a = new int[10];
a[0] = 5;
2️⃣ Выход за границы массива
int[] b = new int[4];
b[4] = 7;
Индексация в массивах начинается с нуля, поэтому допустимые индексы: 0, 1, 2, 3 (а
b[4] не существует)Последний элемент массива всегда имеет индекс
размер_массива - 1.
3️⃣ Ожидание копирования элементов при присваивании:
int[] a = new int[8];
int[] b = a;
Такое присваивание не копирует массив.
Копируется ссылка, и теперь
a и b указывают на один и тот же массив.Изменения через
b будут видны и через a.💡 Кстати, эти и другие тонкие моменты работы с массивами подробно разбираем в модуле 4 курса «Основы языка Java» 😊
👍17
Возвращаемся к практике тестов:
int[] a = {1, 2, 3};
int[] b = a;
b[0] = 10;
a[1] = 7;
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}👍2
👍2
Типичная ошибка с наследованием в Java
Что не так с этим кодом?
На первый взгляд — всё корректно. Но задумайтесь:
• Можно ли объект Student передать туда, где ожидается Account?
• А если у студента несколько аккаунтов?
• А если аккаунт есть не только у студентов, но и у преподавателей?
❗️ Проблема здесь не в синтаксисе, а в неверной модели наследования.
Что не так с этим кодом?
class Account {
String login;
String password;
}
class Student extends Account {
String name;
int age;
}На первый взгляд — всё корректно. Но задумайтесь:
• Можно ли объект Student передать туда, где ожидается Account?
• А если у студента несколько аккаунтов?
• А если аккаунт есть не только у студентов, но и у преподавателей?
❗️ Проблема здесь не в синтаксисе, а в неверной модели наследования.
🔥6
Почему нельзя наследовать Student от Account?
Потому что между ними нет отношения
Здесь другое отношение —
В таком случае нужно использовать композицию, а не наследование:
Потому что между ними нет отношения
is-a. Нельзя корректно сказать, что студент является аккаунтом.Здесь другое отношение —
has-a («имеет»): студент имеет аккаунт, но не является им.В таком случае нужно использовать композицию, а не наследование:
class Account {
String login;
String password;
}
class Student {
String name;
int age;
Account account;
}👍4🔥1
Свежие отзывы на курс "Объектно-ориентированное программирование на Java". Спасибо всем, кто оставляет отзыв! Для меня это очень важно 🤗
👍10
List<Integer> ints = Arrays.asList(3, 6, 8, 12, 55, 4);
Какой код позволит сформировать массив из элементов этого списка, которые меньше 10?
Какой код позволит сформировать массив из элементов этого списка, которые меньше 10?
Anonymous Quiz
46%
Integer[] numbers = ints.stream().filter(i -> i < 10).toArray();
6%
Integer[] numbers = ints.filter(i -> i < 10).toArray(Integer[]::new);
38%
Integer[] numbers = ints.stream().filter(i -> i < 10).toArray(Integer[]::new);
10%
Integer[] numbers = ints.stream().toArray().filter(i -> i < 10);
👍2👏1
Топ-5 стандартных классов Java, которые реально используют в проектах 👇
🔹 1. ArrayList
Рабочая лошадка. Используется везде, где нужна динамическая коллекция: данные из БД, DTO, результаты вычислений. Быстро и удобно.
🔹 2. HashMap
Хранение пар «ключ–значение»: кэш, конфигурации, группировки, быстрый доступ к данным. Если не знаешь HashMap — на проекте будет боль.
🔹 3. Optional
Спасает от NullPointerException и делает код честнее. Часто используется в сервисах и репозиториях, особенно в современном Java-коде.
🔹 4. LocalDate / LocalDateTime
Работа с датами без боли: планирование, логи, бизнес-логика, дедлайны. Старый Date на проде давно не в почёте.
🔹 5. Stream
Фильтрация, маппинг, агрегация данных в одну строку. Читаемый код и меньше шаблонных циклов — за это стримы любят в командах.
📌 Вывод простой: знание стандартных классов Java реально облегчает жизнь. И это логичный следующий шаг после ООП.
🔹 1. ArrayList
Рабочая лошадка. Используется везде, где нужна динамическая коллекция: данные из БД, DTO, результаты вычислений. Быстро и удобно.
🔹 2. HashMap
Хранение пар «ключ–значение»: кэш, конфигурации, группировки, быстрый доступ к данным. Если не знаешь HashMap — на проекте будет боль.
🔹 3. Optional
Спасает от NullPointerException и делает код честнее. Часто используется в сервисах и репозиториях, особенно в современном Java-коде.
🔹 4. LocalDate / LocalDateTime
Работа с датами без боли: планирование, логи, бизнес-логика, дедлайны. Старый Date на проде давно не в почёте.
🔹 5. Stream
Фильтрация, маппинг, агрегация данных в одну строку. Читаемый код и меньше шаблонных циклов — за это стримы любят в командах.
📌 Вывод простой: знание стандартных классов Java реально облегчает жизнь. И это логичный следующий шаг после ООП.
❤9👍4🔥2
StringBuilder sb1 = new StringBuilder("Java");
StringBuilder sb2 = new StringBuilder("Java");
Какая проверка окажется true?
StringBuilder sb2 = new StringBuilder("Java");
Какая проверка окажется true?
Anonymous Quiz
11%
if (sb1 == sb2)
57%
if (sb1.equals(sb2))
32%
if (sb1.toString().contentEquals(sb2))
👍9
String s1 = "Java";
String s2 = "Java";
String s3 = new String("Java");
String s4 = s3.intern();
System.out.println(s1 == s2);
System.out.println(s1 == s3);
System.out.println(s1 == s4);👍7
Что будет выведено на консоль?
Anonymous Quiz
13%
true true true
26%
false false false
37%
true false true
24%
true false false
String str = "I love Java";
str.substring(2, 6);
System.out.println(str);
Что будет выведено на консоль?
Anonymous Quiz
51%
love
3%
Java
32%
I love Java
14%
Ошибка компиляции
👍7🔥2
Java, которой учат. И Java, за которую платят…
Учебный код нужен, чтобы понять идею.
Продакшн-код — чтобы с ним жили годами.
1. Студенту главное, чтобы программа заработала.
В реальном Java-коде важно, как программа будет развиваться дальше: новые требования, новые коллеги.
2. Куча логики в одном методе — нормально для обучения.
В продакшене — маленькие методы, ясные имена, чётко разделённая ответственность.
3. В учебных задачах можно «подогнать» решение под тесты.
В реальной Java — проверки, исключения, валидация, логирование.
4. Учебный код читает привычный ко всему преподаватель.
Нормальный код читают коллеги (и ты сам через год). Поэтому читаемость важнее «хитрого» решения и экономии двух строк.
5. Коллекции, Stream API, ООП, SOLID — не ради галочки,
а чтобы код было легко расширять и безопасно менять.
👉 Опытного Java-разработчика отличает не знание конструкций языка,
а умение писать код, который не страшно открыть снова.
Учебный код нужен, чтобы понять идею.
Продакшн-код — чтобы с ним жили годами.
1. Студенту главное, чтобы программа заработала.
В реальном Java-коде важно, как программа будет развиваться дальше: новые требования, новые коллеги.
2. Куча логики в одном методе — нормально для обучения.
В продакшене — маленькие методы, ясные имена, чётко разделённая ответственность.
3. В учебных задачах можно «подогнать» решение под тесты.
В реальной Java — проверки, исключения, валидация, логирование.
4. Учебный код читает привычный ко всему преподаватель.
Нормальный код читают коллеги (и ты сам через год). Поэтому читаемость важнее «хитрого» решения и экономии двух строк.
5. Коллекции, Stream API, ООП, SOLID — не ради галочки,
а чтобы код было легко расширять и безопасно менять.
👉 Опытного Java-разработчика отличает не знание конструкций языка,
а умение писать код, который не страшно открыть снова.
❤12👍7