ООП
Зачем Java нужна объектная модель
До этого момента программа могла выглядеть как набор переменных, условий, циклов и методов. ООП помогает собирать эти части вокруг сущностей, с которыми работает программа: пользователей, заказов, счетов, сообщений и других объектов предметной области. Так код становится проще разделять по ответственности и развивать по мере роста проекта.
В этом разделе мы постепенно разберём основные инструменты объектной модели Java и увидим, как они дополняют друг друга.
Что входит в раздел
- Классы и объекты. Разберём, как описывать собственные типы и создавать объекты, с которыми затем работает программа.
- Конструкторы и поля. Посмотрим, как хранится состояние объекта и как задавать его начальные данные при создании.
- Инкапсуляция. Научимся отделять внутреннее устройство объекта от того, как с ним должен работать остальной код.
- Наследование. Увидим, как один тип может расширять другой и когда такая связь действительно полезна.
- Полиморфизм. Разберём, как единый код может работать с разными реализациями через общий тип.
- Абстрактные классы и интерфейсы. Познакомимся со способами задавать общие возможности и правила для группы связанных типов.
- Класс Object. Узнаем, что общего есть у всех объектов Java и почему этот класс встречается по всему стандартному API.
- Equals, hashCode и toString. Разберём основные методы, связанные со сравнением объектов, хешированием и их текстовым представлением.
- Static и final. Посмотрим, как выразить то, что относится ко всему классу, а также то, что не должно изменяться.
- Вложенные классы. Увидим, как размещать тесно связанные типы рядом и точнее управлять областью их использования.
- Enum. Научимся представлять ограниченный набор осмысленных значений отдельным типом.
Как темы складываются вместе
Сначала мы научимся описывать отдельные объекты и их состояние, затем ограничивать доступ к внутренним деталям и строить связи между типами. После этого перейдём к общим контрактам и поведению, а в конце разберём базовые возможности, которые помогают удобнее проектировать сами классы.