ооп 3. Основные понятия ООП: инкапсуляция, наследование, полиморфизм. Понятие объекта. Категории объектов. Отношения между объектами. Понятие класса. Отношения между классами. Понятие домена. - keykranz/oop_ex GitHub Wiki

Основные понятия ООП: инкапсуляция, наследование, полиморфизм.

  • Инкапсуляция — объединение данных и методов, работающих с ними в классе, скрывая детали реализации от пользователя.

  • Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским или суперклассом. Новый класс — потомком, наследником или производным классом.

  • Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта. Переопределение методов. Один интерфейс - много реализаций.


Понятие объекта. Категории объектов. Отношения между объектами.

Объект - реализация абстрактного понятия, обладающего: (экземпляр класса)

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

Категории объектов:

  • Реальные (реальный предмет - кошка, стол, машина)
  • Роли (абстракция выполняемой роли - человека или оборудования)
  • Инциденты (явление, процесс)
  • Взаимодействие (объект порожденный взаимодействием других объектов - перекресток, договор, взятка)
  • Спецификация (используется для предоставления правил - правила дорожного движения)

Отношение между объектами:

  • Отношения использования
    • Объект воздействия (активный - воздействует на другие объекты, на него никто)
    • Исполнитель (пассивный - воздействует на него, сам ни на кого не воздействует)
    • Посредник (и то и другое. Большое количество посредников упрощает модификацию программы)
  • Отношения включения – один объект включает другие объекты.


Понятие класса. Отношения между классами. Понятие домена.

Класс - абстракция множества предметов реального мира, имеющих общие правила поведения и характеристики.

Отношение между классами:

  • Наследование (на основе одного класса строится новый)
  • Использование (один класс вызывает методы другого)
  • Наполнение (один класс содержит другие)
  • Метаклассы (используется для создание других классов)

Домен - отдельный мир (реальный, гипотетический, абстрактный), населенный определенным набором объектов, которые ведут себя в соответствии с определенным доменом правилами.

Домен - связанное единое целое. Программа разбивается на домены в процессе создания. Класс определяется в одном домене. Активный домен - единое целое. Наличие класса в одном домене не требует наличия классов в другом.