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


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


Если рассматривать меню, то можно отметить, что объект МЕНЮ обладает всеми свойствами ОКНА, но вдобавок  имеет и ряд собственных - например, строки позиций меню и, возможно, линейку прокрутки. Ниже ОКНА можно было бы поместить и РЕДАКТОР, обладающий всеми характеристиками окна и, кроме того, способностью принимать символы с клавиатуры и манипулировать ими.

Заметим, что как МЕНЮ, так и РЕДАКТОР  можно с полным правом называть ОКНАМИ, так как оба  они имеют ширину, высоту  и т. д., но при этом они различаются между собой по виду и способу функционирования.

Такая иерархия объектов может иметь много уровней. К примеру, при дальнейшей конкретизации объекта РЕДАКТОР мы могли бы ввести нечто под названием ПОЛЕ приглашения, которое наследует все черты РЕДАКТОРА, но ограничено одной строкой текста, перед которой стоит целая цепочка символов, образующих приглашение.

По терминологии ООП языка С++, ОКНО, МЕНЮ, РЕДАКТОР  и  ПОЛЕ приглашения  - это классы. Классы образуют иерархию, которая определяет наследование отношений между ними. Так как класс МЕНЮ  наследует свойства класса ОКНО, то в языке Borland C ++  МЕНЮ называется производным классом ОКНА. В свою очередь, ОКНО является по отношению к МЕНЮ  базовым классом.

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

В нашем примере мы рассматривали атрибуты ОКНА и его производных классов, но, как вы помните, было сказано, что объекты наследуют и поведение. Эта характеристика наследования имеет ряд важных последствий для проектирования  программ.

Создавая класс ОКНО, мы, конечно, предусмотрим функцию- член, позволяющую перемещать окно по экрану. МЕНЮ  унаследует эту функцию от ОКНА, а это значит, что любое меню можно тоже перемещать по экрану, не программируя заново эту функцию. Объекты  меню используют для этого тот же программный код, что и обеты окна.




Начало  Назад  Вперед



Книжный магазин