Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник Емельянов.doc
Скачиваний:
12
Добавлен:
03.11.2018
Размер:
3.25 Mб
Скачать

Класс как объектный тип

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

Объявленные переменные объектных типов физически не представляют собой экземпляров класса. Они являются просто ссылками. Объекты созда­ются только в процессе выполнения программы. Под объекты необходимо не просто выделить память - их необходимо построить. Например, при по­строении формы используется файл ресурсов. Однако Delphi позволяет трактовать объект как обычную переменную.

В отличие от других типов class можно объявлять только глобально. За­прещено объявлять классы внутри процедур и функций.

Наследование

Правила объявления класса таковы, что любой класс обязательно дол­жен быть связан с каким-либо другим классом (существует одно исключение -TObject, являющийся корнем иерархического дерева классов). Соответст­венно любой класс может использовать какие-либо свойства, поля, методы уже существующих классов. В объявлении класса выше после ключевого слова class указан существующий класс TObject. Это означает, что тип TMyClass, кроме объявленных четырех элементов, содержит или наследует все элементы, содержащиеся в классе TObject. Класс TObject называется предком (родительским), a TMyClass - потомком (дочерним).

Наследование - вторая важная особенность объектных типов. Список наследников у данного класса может только возрастать. Каждый потомок может указать только одного предка. Однако неявно этот потомок содержит все поля, методы и свойства всех предков по линии наследования. Если пре­док не указан, то в Delphi считается, что предком является класс TObject.

ОБЛАСТИ ВИДИМОСТИ

Минимальную область видимости определяет секция Private. Вне моду­ля владельца данного класса элементы этой секции недоступны. В секцию

Private следует помещать такие элементы, неосторожная модификация кото­рых может привести к нежелательным последствиям. В секции Protected по сравнению с секцией Private защита элементов ослаблена. Элементы этой секции доступны только в классах потомках, в том числе и тогда, когда по­томки создаются в другом модуле. Из секции Public элементы доступны в любом модуле, использующем данный класс. Если не указана область види­мости, то по умолчанию принимается Published. Секция Published имеет область видимости такую же, что и секция Public. Отличие заключается в том, что эта секция имеет специальный интерфейс, благодаря которому ин­формацию о членах этой секции может получить внешняя программа. Ин­терфейс Published используется инспектором объектов для визуализации компонентов. Если классы требуют интерфейса Published, то они относятся к типам времени выполнения RTTI (Runtime Type Information).