ООП

Базовый Java
≈ 2 мин чтения

Зачем Java нужна объектная модель

До этого момента программа могла выглядеть как набор переменных, условий, циклов и методов. ООП помогает собирать эти части вокруг сущностей, с которыми работает программа: пользователей, заказов, счетов, сообщений и других объектов предметной области. Так код становится проще разделять по ответственности и развивать по мере роста проекта.

В этом разделе мы постепенно разберём основные инструменты объектной модели Java и увидим, как они дополняют друг друга.

Что входит в раздел

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

Как темы складываются вместе

Сначала мы научимся описывать отдельные объекты и их состояние, затем ограничивать доступ к внутренним деталям и строить связи между типами. После этого перейдём к общим контрактам и поведению, а в конце разберём базовые возможности, которые помогают удобнее проектировать сами классы.

ООП — не набор правил ради правил. Его инструменты нужны, чтобы обязанности объектов и связи между ними были понятными. Дальше мы будем разбирать каждый инструмент отдельно и смотреть, когда он действительно упрощает код.