18
ПРИНЦИПЫ ОБЪЕКТНОГО ПОДХОДА

принципы объектного подхода

Embed Size (px)

Citation preview

Page 1: принципы объектного подхода

ПРИНЦИПЫ ОБЪЕКТНОГО ПОДХОДА

Page 2: принципы объектного подхода

Основные понятияООП

Наследование

Полиформизм

Инкапсуляция

Page 3: принципы объектного подхода

Основные понятияООП

Класс Объект

Page 4: принципы объектного подхода

Объект

Это сущность, способная сохранять свое состояние (информацию) и обеспечивающая набор операций для проверки и изменения этого состояния

Состояние объекта характеризуется текущим значением его атрибутов

Page 5: принципы объектного подхода

ОбъектОбъект

Свойства События и методы

Page 6: принципы объектного подхода

Инкапсуляция

 Это определение классов — пользовательских типов данных, объединяющих своё содержимое в единый тип и реализующих некоторые операции или методы над ним

Классы обычно являются основой модульности, инкапсуляции и абстракции данных в языках ООП

Page 7: принципы объектного подхода

Наследование

 Способ определения нового типа, наследуя элементы (свойства и методы) существующего и модифицируя или расширяя их

Page 8: принципы объектного подхода

Наследование

Транспорт

Наземный

Легковой

Грузовой

Водный

Воздушный

Page 9: принципы объектного подхода

Полиформизм

Позволяет единообразно ссылаться на объекты различных классов (обычно внутри некоторой иерархии)

Это делает классы ещё более удобными и делает программы, основанные на них, легче для расширения и поддержки

Page 10: принципы объектного подхода

Полиформизм

Page 11: принципы объектного подхода

Класс

Это некое множество объектов, имеющих общую структуру и общее поведение

class Date { private:

int dd; int mm; int yy;

public: void Init (int d, int m, int y); int Day (); int Month (); int Year ();

};

Page 12: принципы объектного подхода

Структура класса

Для поддержки принципа инкапсуляции, существуют четыре основных уровня доступа к членам класса

Разные языки могут поддерживать разное из этих уровней

Page 13: принципы объектного подхода

Структура класса

Открытый (public) доступ — члены с этим уровнем доступа видимы всем клиентам класса

Защищенный (protected) доступ — члены этого уровня видимы самому классу, его подклассам, и абстракциям, находящимся с ним в одном пакете

Пакетный доступ — члены этого уровня доступны только самому классу и абстракциям

Закрытый (private) доступ — члены этого уровня видимы только изнутри самого класса

Page 14: принципы объектного подхода

Абстракция

Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя

Page 15: принципы объектного подхода

Абстрактные классы

Классы, которые не могут иметь экземпляров

Это означает, что в них присутствуют функции-члены, которые объявлены, но не определены

Эти функции определяются в наследниках, которые уточняют данную абстракцию

Page 16: принципы объектного подхода

Абстрактные классы

class shape {public:      virtual void rotate(int) = 0;

       virtual void draw() = 0;};

Page 17: принципы объектного подхода

Интерфейс

Это абстрактный класс, который содержит только объявления методов и статические константные поля

Интерфейс определяет чистую абстракцию поведения

Page 18: принципы объектного подхода

Класс-утилита

Это класс, в котором присутствуют только статические члены

Такие классы используются для группировки наиболее часто используемых общих алгоритмов, работающих с другими абстракциями или примитивными данными