Сайты ТУСУРа

Практикум по объектно-ориентированному программированию

Учебное пособие

Пособие позволяет систематизировать знания в области объектно-ориентированного программирования на языке Java, развить навыки разработки программного кода с использованием современных кросс-платформенных инструментальных средств. Для студентов направлений «Программная инженерия» и «Бизнес-информатика», а также всех, кто продолжает изучать основы объектно-ориентированного программирования на языке Java

Кафедра автоматизации обработки информации

Библиографическая запись:

Морозова, Ю. В. Практикум по объектно-ориентированному программированию: Учебное пособие [Электронный ресурс] / Ю. В. Морозова. — Томск: ТУСУР, 2021. — 186 с. — Режим доступа: https://edu.tusur.ru/publications/9758
Автор:   Морозова Ю. В.
Год издания: 2021
Количество страниц: 186
Скачиваний: 235

Оглавление (содержание)

Оглавление

Введение ...................................................................................................................... 5

1 Концепции объектно-ориентированного программирования...................... 7

1.1 Классы и объекты............................................................................................ 7

1.2 Геттеры и сеттеры ......................................................................................... 12

1.3 Перегрузка методов....................................................................................... 13

1.4 Ключевые слова this и super......................................................................... 15

1.5 Метод toString() ............................................................................................. 17

1.6 Конструкторы ................................................................................................ 18

1.7 Определение класса в Java ........................................................................... 23

1.8 Принципы ООП............................................................................................. 26

1.8.1 Абстракция.......................................................................................... 26

1.8.2 Инкапсуляция ..................................................................................... 28

1.8.3 Наследование...................................................................................... 31

1.8.4 Полиморфизм ..................................................................................... 33

1.9 Переопределение методов............................................................................ 34

1.10 Подстановка ................................................................................................. 36

1.11 Апкастинг и даункастинг ........................................................................... 38

1.12 Оператор instanceof ..................................................................................... 39

1.13 Абстрактные классы и интерфейсы .......................................................... 40

1.13.1 Абстрактные классы ........................................................................ 40

1.13.2 Интерфейсы ...................................................................................... 44

2 Типы отношений между классами и объектами............................................ 49

2.1 Ассоциация .................................................................................................... 52

2.2 Агрегация ....................................................................................................... 53

2.3 Композиция.................................................................................................... 53

2.4 Наследование ................................................................................................. 54

3 Введение во фреймворк «Коллекции». Обобщения...................................... 56

3.1 Коллекции ...................................................................................................... 56

3.2 Перебор элементов коллекций..................................................................... 60

3.3 Обобщения ..................................................................................................... 65

3.3.1 Универсальные классы (generic class) и интерфейсы.................... 70

3.3.2 Дженерик-методы и универсальные конструкторы....................... 78

3.3.3 Подстановочные символы (wildcard)............................................... 81

4 Потоки ввода-вывода и потоки выполнения.

Многопоточное программирование .................................................................... 88

4.1 Потоки ............................................................................................................ 88

4.2 Сериализация и десериализация объектов ............................................... 100

4.2.1 Сериализация.................................................................................... 102

4.2.2 Десериализация ................................................................................ 103

4.2.3 Исключение данных из сериализации ........................................... 107

4.2.4 Сериализация статических полей................................................... 108

4.2.5 Сериализация с массивом или коллекцией ................................... 112

4.2.6 Сериализация Java с наследованием.............................................. 114

4.2.7 Сериализация Java с агрегированием ............................................ 116

4.2.8 SerialVersionUID............................................................................... 119

4.3 Потоки выполнения .................................................................................... 121

4.4. Жизненный цикл потока............................................................................ 126

4.5 Многопоточность ........................................................................................ 127

4.5.1 Главный поток.................................................................................. 128

4.5.2 Создание и завершение потоков..................................................... 129

4.5.3 Завершение потока........................................................................... 132

4.5.4 Управление приоритетами .............................................................. 134

4.5.5 Синхронизация потоков .................................................................. 136

4.5.6 Состояния потока ............................................................................. 153

4.5.7 Блокировка........................................................................................ 154

5 Лямбда-выражения............................................................................................ 158

Заключение ............................................................................................................. 180

Литература.............................................................................................................. 181

Глоссарий................................................................................................................ 183