Отношения между классами. Наследование, композиция, агрегирование

В программировании вы быстро поймете, как важно не писать лишний объем кода. К счастью, в Java есть все необходимое, чтобы изящно «сокращать». В этой лекции наглядно описаны отношения между классами: наследование, композиция, агрегирование. Приготовьтесь: будет много интересных примеров.

Принципы инкапсуляции

Инкапсуляция, сокрытие — это разные понятия или одно и то же? В базовом виде вы уже сталкивались с инкапсуляцией не раз. Если хотите знать, как «спрятать» от пользователя сложные механизмы работы вашей программы и оставить на виду только удобный интерфейс, советуем внимательно прочесть эту лекцию.

Практика использования полиморфизма

Главное преимущество полиморфизма — гибкость. С одной стороны, вы можете работать с несколькими типами данных так, будто это один тип. С другой стороны, благодаря этому принципу вы можете сохранять поведение объектов. Когда вам пригодится приведение к единому виду, а когда — уникальные характеристики? Об этом и поговорим.

Для чего в Java нужны интерфейсы

В этой лекции без спешки и подробно описано, что такое интерфейсы и почему они появились в языке. А еще вы узнаете о популярных интерфейсах в Java. Приготовьтесь, это тема с продолжением!

Разница между абстрактными классами и интерфейсами

В этой лекции поговорим о том, чем абстрактные классы отличаются от интерфейсов и рассмотрим примеры с распространенными абстрактными классами.

Мы посвятили отличиям абстрактного класса от интерфейса отдельную лекцию, так как тема очень важная. О разнице между этими понятиями вас спросят на 90% будущих собеседований. Поэтому обязательно разберитесь с прочитанным, а если что-то поймете не до конца, почитайте дополнительные источники.


undefined
12
Задача
Java Syntax Pro, 12 уровень, 6 лекция
Недоступна
Яблоки бывают разные
Исправь ошибку в коде, чтобы программа вывела на экран фразу: "телефоны одинаковые".
undefined
12
Задача
Java Syntax Pro, 12 уровень, 6 лекция
Недоступна
Все буквы маленькие
Программа должна считать с консоли строку и вывести ее на экран в нижнем регистре. Исправь ошибку в коде, чтобы программа работала корректно.
undefined
12
Задача
Java Syntax Pro, 12 уровень, 6 лекция
Недоступна
Забытая инициализация
В программе массив заполняется числами от 0 до 9 и выводится на экран. Но из-за ошибки программа не компилируется. Сделай так, чтобы программа компилировалась и работала правильно.
undefined
12
Задача
Java Syntax Pro, 12 уровень, 6 лекция
Недоступна
Затенение поля класса
В методе main вызывается метод add, который должен увеличить значение поля salary класса Solution на переданное значение, но при выводе поля salary получаем 0. Сделай так, чтобы программа работала правильно.
undefined
12
Задача
Java Syntax Pro, 12 уровень, 6 лекция
Недоступна
Почувствуй себя деканом
У нас есть группа в университете и метод, который должен отчислять конкретного студента, но он почему-то не работает. Твоя задача — найти ошибку и исправить, чтобы метод exclude смог отчислить студента.
undefined
12
Задача
Java Syntax Pro, 12 уровень, 6 лекция
Недоступна
MacCoffee 3 в 1
У нас есть набор классов, чтобы сделать кофе три в одном, но почему-то кофе не заваривается — задача не компилируется. Найди и исправь одну ошибку в коде.
undefined
12
Задача
Java Syntax Pro, 12 уровень, 6 лекция
Недоступна
Составляем список студентов
Метод main должен добавлять двух студентов в массив и выводить их в консоль с помощью метода printStudents. Сделай исправления в методе main, чтобы программа заработала.
undefined
12
Задача
Java Syntax Pro, 12 уровень, 6 лекция
Недоступна
Студент
Метод main класса Solution создает объект класса Student с конкретным именем, но программа не компилируется. Тебе нужно исправить ошибку в классе Student, чтобы программа компилировалась, и при запуске в консоль выводилось имя студента.
undefined
12
Задача
Java Syntax Pro, 12 уровень, 6 лекция
Недоступна
Телефон в наследство
Необходимо правильно расставить ключевые слова extends и implements в представленных классах, чтобы программа компилировалась.
undefined
12
Задача
Java Syntax Pro, 12 уровень, 6 лекция
Недоступна
Текстовые цифры
Программа преобразует цифры в текст. В классе Solution есть статический метод digitToText(char), который возвращает текстовое представление цифр. В методе main число переводится в текстовое представление, но выводится только "девять девять ... ". Добавь в метод digitToText(char) нужное количество опе