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

Области видимости

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

Операции is и as

Операции Is и As применяются к объектам. С помощью операции Is определяется, принадлежит ли данный объект указанному типу или одному из его потомков. Например, выражение AnObject is TMyClass возвращает true, если переменная AnObject совместима по присваиванию с переменной типа TMyClass. Для приведения типа какого-либо объекта применяется операция As. Например,

With AnObject as TMyClass do . . .

В операции As сначала проверяется совместимость типа с помощью операции Is. Если типы несовместимы, то запускается обработчик исключительной ситуации EInvalidCast. Поэтому использование следующей операции является менее надёжным способом неявного приведения типа:

With TMyClass(AnObject) do . . .

МЕТОДЫ

Методы служат для обработки информации, содержащейся в полях. Доступ к полям может осуществляться без дополнительных (формальных) параметров. Формальные параметры у методов обычно служат для обмена информацией с другими классами.

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

Procedure TMyClass.AMethod(Param:AType);

Begin

. . . . . . . .;

end;

Внутри begin . . .end; можно вызывать любые методы предков с указанием имени предка. Ближайший предок, имеющий такое же имя, как у данного метода, может вызываться с помощью зарезервированного слова inherited.

Методы могут синтаксически оформляться следующим способом:

  • Procedure;

  • Function;

  • Constructor – вид Procedure, служащей для построения объекта, инициализации полей и правильного вызова так называемых виртуальных методов;

  • Destructor - вид Procedure, служащей для освобождения памяти, т.е. разрушения объекта.

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