ВУЗ:
Составители:
Рубрика:
11
Как уже отмечалось, внутри метода имеется доступ не только к локальным и любым
видимым внешним идентификаторам, но и к полям экземпляра объекта, инкапсулированным в
определении класса.
Например, метод-процедура SetTitle определенного ранее класса Tbook (см.стр. 7) могла
бы выглядеть следующим образом:
procedure TBook.SetTitle (ATitle : String);
begin
FTitle := ATitle;
end;
Поле объекта FTitle не определяется явным образом, как локальная переменная, но эквивалентно
Self.FTitle
то есть является полем активного (использованного при вызове) представителя класса TBook.
1.5.3 Реализация методов - функций
Реализация методов-функций также очень похожа на реализацию самостоятельных
функций.
Общий синтаксис реализации метода-функции следующий:
function ИмяКласса.ИмяФункции(<Параметры>) : Возвращаемый Тип;
<Необязательный блок объявлений>
begin
<Исполняемые операторы>
Result := . . .
<Исполняемые операторы>
end;
Рассмотрим пример:
function TForm1.CalculateScore (RawValue : Integer) : Boolean
begin
Result := CalcEndine.Score (RawValue);
end;
Как и в случае метода-процедуры, реализация метода-функции должна располагаться в
разделе implementation модуля, либо в программе или библиотеке, до основного блока begin-end.
Реализация начинается с зарезервированного слова function, за которым следует полное
имя метода. Полное имя состоит из названия класса, к которому принадлежит метод, и
собственно имени метода. Остальная часть реализации подчиняется тем же правилам, что и
реализация самостоятельных функций.
Как и у методов-процедур, внутри метода-функции имеется доступ не только к локальным
и любым видимым внешним идентификаторам, но и к полям объекта, инкапсулированным в
определении класса.
Например, метод-функция GetTitle определенного ранее класса TBook могла бы
выглядеть так:
function TBook.GetTitle : String;
begin
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »