Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка ООП.doc
Скачиваний:
23
Добавлен:
08.11.2018
Размер:
1.4 Mб
Скачать

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

Для понимания основ объектно-ориентированного программирования рассмотрим объекты реального мира. Объектом в повседневной жизни могут быть названы материальные предметы, такие как стол, телевизор, спутник; живые объекты: амеба, например, как объект изучения; абстрактные объекты. Всем этим объектам характерны три основных свойства: идентичность, состояние и поведение.

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

Для того чтобы понять, что такое состояние и поведение, рассмотрим в качестве примера такой объект как телевизор. Его состояние определяется такими параметрами, как включен/выключен, исправен/сломан, переключен на программу 1, 2 и т.д. Поведение определяется состоянием. Например, поведение исправного и сломанного телевизора различаются очень сильно. Поведение изменяет состояние, ведь сломанным он стал в результате некоторого поведения. Поведение часто является реакцией на воздействие извне – например, нажали на кнопочку «Выкл». Результатом поведения также может быть передача сообщения. В случае телевизора это очевидно – его основным поведением как раз и является передача сообщений. Для других бытовых приборов это может быть, например, загоревшаяся красная лампочка, показывающая, что прибор неисправен.

Далее следует отметить, что все объекты с нашей точки зрения представляют собой так называемые «черные ящики». То есть мы разделяем, что он делает, и как он это делает. Что объект делает, мы, как правило, знаем – это называют интерфейсом. Как он это делает, как правило, неизвестно, да и не важно – это называют реализацией. Пример все тот же. Все знают, что делает телевизор и как его включить, а вот как он устроен, знают очень немногие.

Есть сходные объекты, имеющие одинаковый интерфейс и реализацию. Тем не менее, это разные объекты. То есть они различаются идентичностью. Их состояние может совпадать или не совпадать. Их поведение в одинаковом состоянии при одинаковых внешних воздействиях должно совпадать, поскольку оно определяется реализацией. Такие объекты образуют класс. Например, класс автомобилей одной марки, произведенных одной фирмой.

С другой стороны, есть объекты, имеющие одинаковый интерфейс, но реализованные по-разному: ламповый телевизор и телевизор на микросхемах – огромная разница в реализации, но оба имеют кнопочку «Вкл/выкл». С точки зрения тех, кто их использует, замена одного на другой не составляет труда.

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

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

Идентичность – это такое свойство объекта, которое отличает его от всех других объектов.

Состояние объекта характеризуется перечнем (обычно статическим) всех свойств данного объекта и текущими (обычно динамическими) значениями каждого из этих свойств.

Поведениеэто то, как объект действует и реагирует; поведение выражается в терминах изменения состояния объекта и передачи сообщений.

Интерфейс – это представление внешнего мира об объекте.

Реализация – его внутренне устройство.

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

Класс – это некое множество объектов, имеющих общую структуру и общее поведение.

Термины «экземпляр класса» и «объект» взаимозаменяемы. Классы вступают между собой в некоторое отношение, называемое иерархией наследования. Но это понятие будет рассмотрен позже.