Java from EPAM : учебно-методическое пособие [Игорь Николаевич Блинов] (pdf) читать постранично, страница - 2

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

КЛАССЫ И МЕТОДЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Переменные класса, экземпляра класса и константы . . . . . . . . . . . . . . . . . . 67
Ограничение доступа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Конструкторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Методы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Проектирование методов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Использование параметров метода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4

ОГЛАВЛЕНИЕ
Использование параметра метода для получения результата . . . . . . . . . . . . 75
Использование возвращаемого значения . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Оболочка Optional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Статические методы и поля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Модификатор final и неизменяемость . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Абстрактные методы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Модификатор native . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Модификатор synchronized . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Логические блоки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Перегрузка методов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Параметризованные классы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Параметризованные методы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Методы с переменным числом параметров . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Перечисления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Immutable и record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Декомпозиция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Рекомендации при проектировании классов . . . . . . . . . . . . . . . . . . . . . . . . 109
Вопросы к главе 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Задания к главе 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Тестовые задания к главе 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Глава 4. НАСЛЕДОВАНИЕ И ПОЛИМОРФИЗМ . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Наследование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Классы и методы final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Использование super и this . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Переопределение методов и полиморфизм . . . . . . . . . . . . . . . . . . . . . . . . . 129
Методы подставки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
«Переопределение» статических методов . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Абстракция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Полиморфизм и расширение функциональности . . . . . . . . . . . . . . . . . . . . 136
Класс Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Клонирование объектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
«Сборка мусора» и освобождение ресурсов . . . . . . . . . . . . . . . . . . . . . . . . 145
Пакеты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Статический импорт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Рекомендации при проектировании иерархии . . . . . . . . . . . . . . . . . . . . . . . 149
Вопросы к главе 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Задания к главе 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Тестовые задания к главе 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Глава 5. ВНУТРЕННИЕ КЛАССЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Внутренние (inner) классы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Вложенные (nested) классы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Анонимные (anonymous) классы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Вопросы к главе 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

5

JAVA FROM EPAM
Задания к главе 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Тестовые задания к главе 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Глава 6. ИНТЕРФЕЙСЫ И АННОТАЦИИ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Интерфейсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Параметризация интерфейсов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Аннотации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Вопросы к главе 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Задания к главе 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Тестовые задания к главе 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Глава 7. ФУНКЦИОНАЛЬНЫЕ ИНТЕРФЕЙСЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Методы default и static в интерфейсах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Функциональные интерфейсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Интерфейс Predicate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Интерфейс Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Интерфейс Consumer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Интерфейс Supplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Интерфейс Comparator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Замыкания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Ссылки