Что будет выведено на экран?
Anonymous Quiz
12%
Ошибка компиляции
66%
Child
8%
Parent
10%
Parent Child
4%
Runtime Exception
Вам знакомо чувство, когда ты безнадёжно тупишь?
Когда смотришь на задачу и хочется просто плюнуть и забыть про неё?
Я отлично помню это ощущение. В институте нам задали написать программу для работы с деком на языке PL-1.
Да, в те времена был такой язык. А вот интернета и Степика не было. Если преподаватель объяснял плохо, оставался только один вариант — искать книги и разбираться самой.
Это было трудно. Это было больно. Особенно тяжело – не понимать написанного. Но в этом процессе я научилась «докапываться до сути» и сделала важный вывод:
👉 Всё, что создано людьми (например, язык программирования), может понять любой человек. Главное — не считать себя тупым, а искать объяснения, подходящие именно для твоего уровня.
Позже оказалось, что это умение разбираться и объяснять сложные вещи (сначала самой себе, а потом и другим) оказалось полезным не только мне, но и многим людям.
💡 Если вам тоже хоть раз хотелось бросить программирование к ядрене-фене – ставьте лайк! Мы все через это проходили. 😅
Когда смотришь на задачу и хочется просто плюнуть и забыть про неё?
Я отлично помню это ощущение. В институте нам задали написать программу для работы с деком на языке PL-1.
Да, в те времена был такой язык. А вот интернета и Степика не было. Если преподаватель объяснял плохо, оставался только один вариант — искать книги и разбираться самой.
Это было трудно. Это было больно. Особенно тяжело – не понимать написанного. Но в этом процессе я научилась «докапываться до сути» и сделала важный вывод:
👉 Всё, что создано людьми (например, язык программирования), может понять любой человек. Главное — не считать себя тупым, а искать объяснения, подходящие именно для твоего уровня.
Позже оказалось, что это умение разбираться и объяснять сложные вещи (сначала самой себе, а потом и другим) оказалось полезным не только мне, но и многим людям.
💡 Если вам тоже хоть раз хотелось бросить программирование к ядрене-фене – ставьте лайк! Мы все через это проходили. 😅
❤41👍12🔥6😢2
Как отсортировать подарки по весу?
Anonymous Quiz
9%
gifts.sort(Comparator.reverseOrder());
20%
gifts.sort((g1,g2) -> g2.getWeight() - g1.getWeight());
34%
Collections.sort(gifts, Comparator.comparingDouble(Gift::getWeight));
37%
Collections.sort(gifts, (g1,g2) -> g1.getWeight().compareTo(g2.getWeight()));
В какой последовательности изучать возможности Java?
Это очень важный вопрос. Ведь правильная последовательность изложения материала даст Вам не просто шаблон решения той или иной задачи – она даст Вам понимание языка в целом!
Давайте проиллюстрируем это на примере о сортировке подарков из последнего теста.
Ученики курса “Объектно-ориентированное программирование на Java” решили бы эту задачу так:
Т.е. здесь второй параметр метода
Ученики курса “Прокачай Java” заменили бы переопределение метода более коротким лямбда-выражением:
А когда бы познакомились с новыми статическими методами, добавленными в интерфейс
И этот код уже гораздо короче. Но понятным до конца он становится только тогда, когда сам пройдешь эту эволюцию от создания безымянного класса до использования статических методов компаратора! А то, что понятно – запоминается надолго…
Именно поэтому рекомендую изучать Java Core в той последовательности, которую нам задает "Java Core: Программа курсов". К тому же это и значительно дешевле, особенно со скидкой 10% для подписчиков Телеграмм-канала.
Это очень важный вопрос. Ведь правильная последовательность изложения материала даст Вам не просто шаблон решения той или иной задачи – она даст Вам понимание языка в целом!
Давайте проиллюстрируем это на примере о сортировке подарков из последнего теста.
Ученики курса “Объектно-ориентированное программирование на Java” решили бы эту задачу так:
Collections.sort(gifts, new Comparator<Gift>() {
@Override
public int compare(Gift o1, Gift o2) {
if(o1.getWeight()>o2.getWeight()) return 1;
if(o1.getWeight() < o2.getWeight()) return -1;
return 0;
}
});
Т.е. здесь второй параметр метода
Collection.sort() – это безымянный класс, который реализует интерфейс Comparator. И метод compare() этого класса переопределяется прямо тут, в описании вызова метода sort(). Правильно, но громоздко, не так ли?Ученики курса “Прокачай Java” заменили бы переопределение метода более коротким лямбда-выражением:
Collections.sort(gifts, (o1, o2) -> {
if (o1.getWeight() > o2.getWeight()) return 1;
if (o1.getWeight() < o2.getWeight()) return -1;
return 0;
});
А когда бы познакомились с новыми статическими методами, добавленными в интерфейс
Comparator в Java 8, заменили бы это лямбда - выражение вызовом статического метода comparingDouble() с использованием ссылки на метод Gift::getWeight:Collections.sort(gifts, Comparator.comparingDouble(Gift::getWeight));
И этот код уже гораздо короче. Но понятным до конца он становится только тогда, когда сам пройдешь эту эволюцию от создания безымянного класса до использования статических методов компаратора! А то, что понятно – запоминается надолго…
Именно поэтому рекомендую изучать Java Core в той последовательности, которую нам задает "Java Core: Программа курсов". К тому же это и значительно дешевле, особенно со скидкой 10% для подписчиков Телеграмм-канала.
Stepik: online education
Объектно-ориентированное программирование на Java
Окунитесь в мир объектно-ориентированного программирования! Научитесь создавать и использовать классы, разберитесь с принципами ООП и их реализацией в Java, изучите паттерны проектирования приложений.
Если Вы новичок в ООП и к тому же изучаете Java – этот…
Если Вы новичок в ООП и к тому же изучаете Java – этот…
👍6🔥4⚡1🙏1
Какое утверждение о конструкторе является истинным?
Anonymous Quiz
6%
Конструктор может быть объявлен с возвращаемым типом void
29%
Конструктор может быть унаследован от родительского класса
28%
Если в классе не определен конструктор, компилятор создат приватный конструктор по умолчанию
24%
Конструктор можно перегрузить
13%
Конструктор может быть вызван напрямую по имени, как обычный метод
👍9❤1
Что нужно знать о конструкторах?
1) Конструкторы не наследуются! Это значит, что в наследнике нужно обязательно прописывать свой конструктор. Но при этом первое, что выполняется в конструкторе наследника – это вызов конструктора суперкласса. Т.е. всегда сначала отрабатывает конструктор суперкласса, а потом – конструктор подкласса.
2) Если в классе не определен конструктор, то по умолчанию создается конструктор без параметров. Но он публичный, а не приватный!
3) Если в классе мы объявим хоть один конструктор с параметром, этот конструктор по умолчанию становится недействительным. И мы должны его явно описать, если намерены использовать. Как в примере мы описали конструктор
4) Конструктор не может быть вызван напрямую, как обычный метод. Нужно использовать операцию new. Например,
1) Конструкторы не наследуются! Это значит, что в наследнике нужно обязательно прописывать свой конструктор. Но при этом первое, что выполняется в конструкторе наследника – это вызов конструктора суперкласса. Т.е. всегда сначала отрабатывает конструктор суперкласса, а потом – конструктор подкласса.
class Father {
private int number = 0;
public Father(int number) {
this.number = number;
}
public Father() {
}
}
class Child extends Father {
public Child(int number) {
super(number); //вызов конструктора Father и передача ему параметра
}
public Child() {
//здесь тоже неявно вызывается конструктора Father без параметров
}
}
2) Если в классе не определен конструктор, то по умолчанию создается конструктор без параметров. Но он публичный, а не приватный!
3) Если в классе мы объявим хоть один конструктор с параметром, этот конструктор по умолчанию становится недействительным. И мы должны его явно описать, если намерены использовать. Как в примере мы описали конструктор
public Father() {}
4) Конструктор не может быть вызван напрямую, как обычный метод. Нужно использовать операцию new. Например,
Child c = new Child(7);
👍6❤4
🚀 Срочные новости из мира C++ и Java! 🚀
🔹 Oracle и Bjarne Stroustrup анонсировали Java++ – язык, сочетающий мощь C++ и удобство Java! Теперь вместо
🔹 В Java++ убрали
🔹 Самая главная фича: исключения теперь автоматически исправляют код, вместо выбрасывания ошибки! Если делишь на ноль, компилятор просто меняет 0 на 1 – потому что кто вообще делит на ноль специально?
P.S. Подробности завтра... если компилятор нас не скомпилит раньше! 🤡🔥
🔹 Oracle и Bjarne Stroustrup анонсировали Java++ – язык, сочетающий мощь C++ и удобство Java! Теперь вместо
Garbage Collector – "Garbage Pointer", который случайным образом удаляет объекты в памяти, чтобы не было утечек!🔹 В Java++ убрали
null, потому что программисты всё равно его ненавидят. Теперь вместо него – Schrödinger’s reference, что означает, что неизвестно, есть объект или он отсутствует. Компилятор сам решит, что с этим делать!🔹 Самая главная фича: исключения теперь автоматически исправляют код, вместо выбрасывания ошибки! Если делишь на ноль, компилятор просто меняет 0 на 1 – потому что кто вообще делит на ноль специально?
P.S. Подробности завтра... если компилятор нас не скомпилит раньше! 🤡🔥
🤡16🔥10😁9👏2
Что будет результатом кода?
Anonymous Quiz
50%
5
39%
10
9%
Ошибка компиляции
0%
null
2%
UnsupportedOperationException
C наступающим праздником!
Христиане называют Пасху “праздник праздников и торжество торжеств”. Поэтому я никак не могу оставить Вас без подарка! И даже если Вы атеист или мусульманин – для Вас тоже никаких препятствий получить скидку 20% на любой из моих курсов. Для этого переходите по ссылкам ниже. Но учтите, скидка действует ровно неделю: до 24 апреля:
Христиане называют Пасху “праздник праздников и торжество торжеств”. Поэтому я никак не могу оставить Вас без подарка! И даже если Вы атеист или мусульманин – для Вас тоже никаких препятствий получить скидку 20% на любой из моих курсов. Для этого переходите по ссылкам ниже. Но учтите, скидка действует ровно неделю: до 24 апреля:
❤11👍1
🔖 “Основы языка Java”.
🔖 “Объектно-ориентированное программирование на Java”
🔖 “Прокачай Java”
🔖 “Основы программирования на С/С++”
🔖 “Основы программирования на С/С++. Часть 2”
🔖 “Основы программирования на С/С++. Полная версия”
🔖 "Java Core: Программа курсов"
🔖 “Объектно-ориентированное программирование на Java”
🔖 “Прокачай Java”
🔖 “Основы программирования на С/С++”
🔖 “Основы программирования на С/С++. Часть 2”
🔖 “Основы программирования на С/С++. Полная версия”
🔖 "Java Core: Программа курсов"
Stepik: online education
Основы языка Java
Откройте дверь в мир возможностей Java! С этим курсом Вы создадите фундамент своих знаний: научитесь писать простые программы, разберетесь с типами данных, алгоритмическими конструкциями, массивами и строками, поймете принципы создания статических методов…
❤11
Большая весенняя распродажа курсов на Степике уже завтра! С 20 мая по 2 июня. На все мои курсы скидка 15%, а на курс “Основы языка Java” – 25%.
Отличная возможность прикупить курс себе или в подарок. Для покупки переходите по ссылкам:
• Основы языка Java
• Объектно-ориентированное программирование на Java
• Прокачай Java
• Java Core: программа курсов
• Основы программирования на C/C++
• Основы программирования на C/C++. Часть 2
• Основы программирования на C/C++. Полная версия
Отличная возможность прикупить курс себе или в подарок. Для покупки переходите по ссылкам:
• Основы языка Java
• Объектно-ориентированное программирование на Java
• Прокачай Java
• Java Core: программа курсов
• Основы программирования на C/C++
• Основы программирования на C/C++. Часть 2
• Основы программирования на C/C++. Полная версия
🔥12⚡6🙏3❤🔥1🍾1
Изучаем подводные камни Java. А для начала программа:
public class Main {
public static void main(String[] args) {
Integer a = 100;
Integer b = 100;
Integer c = 200;
Integer d = 200;
System.out.println(a == b);
System.out.println(c == d);
}
}
👍5
Что будет выведено на консоль?
Anonymous Quiz
48%
true true
13%
true false
37%
false false
2%
false true
Друзья! Какой язык Вы изучаете? Как вы знаете, у меня есть курсы и по С++, и по Java. Мне интересно узнать, как складывается аудитория этого канала.
Anonymous Poll
64%
Изучаю Java
22%
Изучаю С++
14%
Мне нужны оба этих языка!
Что выведет следующий код?
public class ArrayTest {
public static void main(String[] args) {
int[] a = new int[5];
int[] b = a;
b[2] = 10;
a = new int[5];
System.out.println(b[2]);
}
}👍2