Методы в Object Pascal. Семенов Н.М. - 10 стр.

UptoLike

Составители: 

10
{Код метода}
. . .
end;
end;
Внешний блок begin - end представляет собой основной блок метода. Внутри метода
можно непосредственно ссылаться на поля объекта, не используя при этом никаких префиксов.
Хотя и нет запрета на использование префикса Self при доступе к полям объекта внутри
метода, обычно в этом нет необходимости. Внутри метода и так подразумевается использование
префикса Self., поэтому можно просто напрямую ссылаться на поля объекта, как если бы это
были локальные переменные.
Однако изредка возникают ситуации, когда приходится явно использовать параметр Self.
В частности, этот параметр может понадобиться для разрешения конфликтов идентификаторов
внутри метода.
Для того, чтобы разрешить конфликт имен с помощью параметра Self, например, чтобы
одновременно работать и с локальной переменной, и с полем объекта, имена которых совпадают,
надо поставить перед именем поля объекта префикс Self с точкой (например, Self.FTitle).
Self - это предопределенный идентификатор внутри метода, поэтому, несмотря на то, что
он не присутствует явно в определении метода, его можно использовать.
Большая разница между обычными и классовыми методами состоит в том, что у
последних отсутствует неявный параметр Self.
Поскольку классовые методы можно вызвать, как используя экземпляр класса, так и
ссылаясь непосредственно на сам класс ( то есть, не ссылаясь при этом на какого-либо
конкретного его представителя), классовый метод не может иметь доступ к полям представителя
класса. Внутри классового метода отсутствует неявный параметр Self, а значит, отсутствует и
возможность использовать его поля.
Поскольку в классовых методах отсутствует скрытый параметр Self, они по существу
ничем не отличаются от самостоятельных подпрограмм. Классовые методы - это лишь удобная
возможность указать, что метод логически относится и данному классу.
1.5.2 Реализация методов - процедур
Обычные методы-процедуры реализуются таким же способом, что и самостоятельные
процедуры. Надо задать последовательность выполняемых операторов, которые составляют тело
процедуры.
Общий синтаксис реализации метода-процедуры следующий:
procedure ИмяКласса. ИмяПроцедуры (<Параметры>);
<Необязательный блок объявлений>
begin
<Исполняемые операторы>
end;
Реализация метода-процедуры должна располагаться в разделе implementation модуля,
либо в программе или библиотеке, до основного блока begin-end.
В полном имени метода стоит префикс с названием класса. Этот префикс указывает, что
определяется не самостоятельная процедура, а метод.