Три основных принципа ООП

Классы объектов

Объекты

Основные понятия объектно-ориентированного программирования

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

Программа, построенная на принципах ООП, – это не последовательность операторов, не некий жесткий алгоритм, а совокупность объектов и способов их взаимодействия. Обмен информацией между объектами происходит посредством сообщений.

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

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

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

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

Таким образом, объект можно определить как совокупность свойств и методов, а также событий, на которые он может реагировать.

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

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

 

Класс «Геометрический объект»
Класс «Объемный» Класс «Плоский»
  Класс «С вершинами» Класс «Без вершин»
  Класс «Окружность» Класс «Эллипс»

Если характеристика уже однажды определена для более высокого уровня, то все уровни, расположенные ниже имеют ту же характеристику (если уж определена окружность, понятно, что вершин у нее нет). Таким образом, классы-наследники могут наследовать характеристики классов-родителей.

Инкапсуляция. С одной стороны объект, обладает определенными свойствами, которые характеризуют его состояние в данный момент. С другой стороны над объектами возможны операции, которые приводят к изменению этих свойств. Доступ к изменению свойств осуществляется только с помощью методов, присущих данному классу объектов. Есть метод, данное свойство данного объекта можно изменить, нет метода – нельзя. Методы как бы «окружают» свойства объекта, говорят, что свойства «инкапсулированы» в объект. Для обеспечения инкапсуляции класс не должен позволять прямого доступа к своим данным. Инкапсуляция – механизм скрытия всех внутренних деталей объекта, не влияющих на его поведение.

Наследование. Наследование определяет отношение между классами: объекты класса-наследника обладают всеми свойствами и методами объектов класса-родителя и не должны их повторно реализовывать. Т.е. один объект приобретает свойства другого объекта, добавляя к ним свойства, характерные только для него. Например,

 

Класс «Точка» (родитель) Класс «Окружность» (наследник)
Свойства Методы Свойства Методы
Координаты (x, y) Перемещение Координаты центра (x, y) Перемещение
Цвет Изменение цвета Цвет Изменение цвета
    Радиус Изменение радиуса

 

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