Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Obektno-orientirovannoe_programmirovanie.doc
Скачиваний:
14
Добавлен:
19.08.2019
Размер:
271.36 Кб
Скачать

2. Абстрагирование в ооп.

Абстрагирование – это процесс выделения групп объектов из реального мира. Абстрагирование м.б. различной степени, которая определяется классом решаемых задач и требуемой степенью детализации. В процессе выделения объектов реального мира оказывается, что некоторые группы объектов характеризуются одними и теми же свойствами и могут выполнять одни и те же действия. Например,

«ручка» - класс

«цвет, толщина линии» - свойства

«провести линию» - действия

Такие группы объектов называются классами объектов. С точки зрения программирования класс – это определяемый пользователем тип, а объект – это экземпляр класса.

Int i1, i2, i3; - объекты класса Int

i1=2; i2=3; i3=i1+i2; - свойства

3. Инкапсуляция в ооп.

Инкапсуляция – это скрытие внутренней реализации объектов от внешних подпрограмм. Объект – объединение закрытого набора данных и открытого набора методов для работы с этими данными. Этот набор методов часто называют интерфейсом. Правильная инкапсуляция позволяет:

  1. сохранить данные объекта в непротиворечивом состоянии

Интервал [нач. зн.; кон. зн.]

Установка нач.зн. нач. зн. < кон. Зн.

Установка кон.зн.

Нач. зн.

Кон. зн.

  1. Избежать множества логических ошибок;

  2. Исключит возможность несанкционированного взаимодействия объекта с другими частями программы.

Об инкапсуляции иногда говорят как о первом базовом элементе или принципе объектно-ориентированного программирования. Согласно принципу инкапсуляции класс или структура может задать уровень доступности каждого из членов по отношению к коду вне класса или структуры. Методы и переменные, которые не предназначены для использования вне класса или сборки, могут быть скрыты, чтобы ограничить потенциальную угрозу возникновения ошибок кода или вредоносное использование.

4. Наследование в ооп.

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

Наследование, вместе с инкапсуляцией и полиморфизмом, является одной из трех основных характеристик (или базовых идей) объектно-ориентированного программирования. Наследование позволяет создавать новые классы, которые повторно используют, расширяют и изменяют поведение, определенное в других классах. Класс, члены которого наследуются, называется базовым классом, а класс, который наследует эти члены, называется производным классом.

Концептуально, производный класс является специализацией базового класса. Например, при наличии базового класса Animal, возможно наличие одного производного класса, который называется Mammal, и еще одного производного класса, который называется ReptileMammal является Animal, а Reptile являетсяAnimal, но каждый производный класс представляет разные специализации базового класса.

При определении класса для наследования от другого класса, производный класс явно получает все члены базового класса, за исключением его конструкторов и деструкторов. Производный класс может таким образом повторно использовать код в базовом классе без необходимости в его повторной реализации. В производном классе можно добавить больше членов. Таким образом, производный класс расширяет функциональность базового класса.