Процесс определения методов объектов напоминает модули 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аммы.
1 2
8 8 8
|