TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

Определение методов 

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

Содержание

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz