Принципы объектного подхода
Основные понятия
Основные понятия
ОбъектЭто сущность, способная сохранять свое состояние (информацию) и обеспечивающая набор операций для проверки и изменения этого состоянияСостояние объекта характеризуется текущим значением его атрибутов
Объект
Инкапсуляция Это определение классов — пользовательских типов данных, объединяющих своё содержимое в единый тип и реализующих некоторые операции или методы над нимКлассы обычно являются основой модульности, инкапсуляции и абстракции данных в языках ООП
Наследование Способ определения нового типа, наследуя элементы (свойства и методы) существующего и модифицируя или расширяя их
Наследование
ПолиформизмПозволяет единообразно ссылаться на объекты различных классов (обычно внутри некоторой иерархии)Это делает классы ещё более удобными и делает программы, основанные на них, легче для расширения и поддержки
Полиформизм
КлассЭто некое множество объектов, имеющих общую структуру и общее поведениеclass Date { private: intdd; intmm; intyy; public: void Init (int d, int m, int y); intDay (); intMonth (); intYear (); };
Структура классаДля поддержки принципа инкапсуляции, существуют четыре основных уровня доступа к членам классаРазные языки могут поддерживать разное из этих уровней
Структура классаОткрытый (public) доступ — члены с этим уровнем доступа видимы всем клиентам классаЗащищенный (protected) доступ — члены этого уровня видимы самому классу, его подклассам, и абстракциям, находящимся с ним в одном пакетеПакетный доступ — члены этого уровня доступны только самому классу и абстракциямЗакрытый (private) доступ — члены этого уровня видимы только изнутри самого класса
АбстракцияАбстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя
Абстрактные классыКлассы, которые не могут иметь экземпляровЭто означает, что в них присутствуют функции-члены, которые объявлены, но не определеныЭти функции определяются в наследниках, которые уточняют данную абстракцию
Абстрактные классыclass shape {public:      virtual void rotate(int) = 0;       virtual void draw() = 0;};
ИнтерфейсЭто абстрактный класс, который содержит только объявления методов и статические константные поляИнтерфейс определяет чистую абстракцию поведения
Класс-утилитаЭто класс, в котором присутствуют только статические членыТакие классы используются для группировки наиболее часто используемых общих алгоритмов, работающих с другими абстракциями или примитивными данными

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

  • 1.
  • 2.
  • 3.
  • 4.
    ОбъектЭто сущность, способнаясохранять свое состояние (информацию) и обеспечивающая набор операций для проверки и изменения этого состоянияСостояние объекта характеризуется текущим значением его атрибутов
  • 5.
  • 6.
    Инкапсуляция Это определение классов— пользовательских типов данных, объединяющих своё содержимое в единый тип и реализующих некоторые операции или методы над нимКлассы обычно являются основой модульности, инкапсуляции и абстракции данных в языках ООП
  • 7.
    Наследование Способ определения новоготипа, наследуя элементы (свойства и методы) существующего и модифицируя или расширяя их
  • 8.
  • 9.
    ПолиформизмПозволяет единообразно ссылатьсяна объекты различных классов (обычно внутри некоторой иерархии)Это делает классы ещё более удобными и делает программы, основанные на них, легче для расширения и поддержки
  • 10.
  • 11.
    КлассЭто некое множествообъектов, имеющих общую структуру и общее поведениеclass Date { private: intdd; intmm; intyy; public: void Init (int d, int m, int y); intDay (); intMonth (); intYear (); };
  • 12.
    Структура классаДля поддержкипринципа инкапсуляции, существуют четыре основных уровня доступа к членам классаРазные языки могут поддерживать разное из этих уровней
  • 13.
    Структура классаОткрытый (public)доступ — члены с этим уровнем доступа видимы всем клиентам классаЗащищенный (protected) доступ — члены этого уровня видимы самому классу, его подклассам, и абстракциям, находящимся с ним в одном пакетеПакетный доступ — члены этого уровня доступны только самому классу и абстракциямЗакрытый (private) доступ — члены этого уровня видимы только изнутри самого класса
  • 14.
    АбстракцияАбстракция выделяет существенныехарактеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя
  • 15.
    Абстрактные классыКлассы, которыене могут иметь экземпляровЭто означает, что в них присутствуют функции-члены, которые объявлены, но не определеныЭти функции определяются в наследниках, которые уточняют данную абстракцию
  • 16.
    Абстрактные классыclass shape{public:      virtual void rotate(int) = 0;       virtual void draw() = 0;};
  • 17.
    ИнтерфейсЭто абстрактный класс,который содержит только объявления методов и статические константные поляИнтерфейс определяет чистую абстракцию поведения
  • 18.
    Класс-утилитаЭто класс, вкотором присутствуют только статические членыТакие классы используются для группировки наиболее часто используемых общих алгоритмов, работающих с другими абстракциями или примитивными данными