Фаза 2 – Объектно-ориентированное программирование (2–3 месяца)
Classes, Objects, Attributes, Methods
- Структура класса
- Инстанцирование объектов
- Использование this
- Лучшие практики: именование, организация кода
Encapsulation, Inheritance, Polymorphism, Abstraction
- Encapsulation: private, getters/setters, валидация
- Inheritance: extends, overriding (@Override)
- Polymorphism: подтипы, method overloading
- Abstraction: обзор, подготовка к интерфейсам и абстрактным классам
Interfaces и Abstract Classes
- Interfaces: implements, default methods
- Abstract classes: абстрактные и конкретные методы
- Различия между интерфейсом и абстрактным классом
Constructors, Initializers, Static Blocks
- Конструкторы по умолчанию и с параметрами, вызовы через this()
- Блоки инициализации ({}) и static блоки (static {})
Enumerations
- Создание и использование enum
- Методы и атрибуты в enum
Базовые Collections
- ArrayList: добавление, удаление, итерация (for, forEach, Iterator)
- HashMap: key-value, основные операции
- HashSet: устранение дубликатов
- Введение в Queue и Stack (например, LinkedList как queue/stack)
- Введение в Java Collections Framework
Базовые алгоритмы
- Линейный и бинарный поиск
- Sorting: Bubble Sort, Collections.sort()
- Recursion: концепции и простые примеры (например, факториал, Фибоначчи)
- Введение в сложность (O(n), O(log n))
Generics
- Синтаксис (), generic collections, generic methods
- Ограничения (extends, super)
Stream API (Введение)
- Основные операции: filter, map, collect
- Примеры с ArrayList
Unit Testing (Введение)
- Базовое использование JUnit
- Написание тестовых случаев для классов и методов
- Введение в TDD (Test-Driven Development)
Финальный проект
- Система библиотеки
- Классы: Book, User, Library
- Наследование: DigitalBook и PhysicalBook
- Коллекции: ArrayList для книг, HashMap для займов
- Encapsulation: валидация данных
- Git: коммиты по функциям (например,
feature/book-management
)
- Публикация на GitHub с подробным README
Обновленные ресурсы