Процесс определения методов объектов напоминает модули
Borland Pascal. Внутри объекта метод определяется заголовком про-
цедуры или функции, действующей как метод:
type
TEmployee = object
Name, Title: string[25];
Rate: Real;
procedure Init (AName, ATitle: String; ARate: Real);
function GetName : String;
function GetTitle : String;
function GetRate : Real;
end;
Примечание: Поля данных должны быть описаны перед пер-
вым описанием метода.
Как и описания процедур и функций в интерфейсной секции мо-
дуля (interface), описание методов внутри объекта говорит, что
методы делают, но не говорит, как.
Это определяется вне определения объекта, в отдельном описа-
нии процедуры или функции. Если метод полностью определяется вне
объекта, то имени метода должно предшествовать имя типа объекта,
которому принадлежит этот метод, с последующей точкой:
procedure TEmployee.Init(AName, ATitle: string;ARate: Real);
begin
Name := AName;
Title := ATitle;
Rate := ARate;
end;
function TEmployee.GetName: String;
GetName := Name;
end;
function TEmployee.GetTitle: String;
begin
GetTitle := Title;
end;
function TEmployee.GetRate: Real;
begin
GetRate := Rate;
end;
Метод опpеделения следует методу интуитивного pазделения
точками для указания поля записи. Кpоме наличия опpеделения
TEmployee.GetName можно было бы опpеделить пpоцедуpу с именем
GetName, в имени котоpой нет пpедшествующего идентификатоpа
TEmployee. Однако, такая "внешняя" GetName не будет иметь никакой
связи с объектом типа TEmployee и будет только запутывать смысл
пpогpаммы.