4. Объект Это сущность, способная сохранять свое состояние (информацию) и обеспечивающая набор операций для проверки и изменения этого состояния Состояние объекта характеризуется текущим значением его атрибутов
6. Инкапсуляция Это определение классов — пользовательских типов данных, объединяющих своё содержимое в единый тип и реализующих некоторые операции или методы над ним Классы обычно являются основой модульности, инкапсуляции и абстракции данных в языках ООП
7. Наследование Способ определения нового типа, наследуя элементы (свойства и методы) существующего и модифицируя или расширяя их
9. Полиформизм Позволяет единообразно ссылаться на объекты различных классов (обычно внутри некоторой иерархии) Это делает классы ещё более удобными и делает программы, основанные на них, легче для расширения и поддержки
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. Абстрактные классы Классы, которые не могут иметь экземпляров Это означает, что в них присутствуют функции-члены, которые объявлены, но не определены Эти функции определяются в наследниках, которые уточняют данную абстракцию
17. Интерфейс Это абстрактный класс, который содержит только объявления методов и статические константные поля Интерфейс определяет чистую абстракцию поведения
18. Класс-утилита Это класс, в котором присутствуют только статические члены Такие классы используются для группировки наиболее часто используемых общих алгоритмов, работающих с другими абстракциями или примитивными данными