Методы - это процедуры и функции, объявление которых включено в описание класса и которые выполняют действия над объектами класса. Объявляются и описываются они так же, как и обычные подпрограммы в модулях, то есть в интерфейсной части модуля внутри описания класса записывается лишь заголовок подпрограммы, а в исполнительной части – само содержание метода. Чтобы метод был выполнен, надо указать имя объекта и имя метода, отделив одно имя от другого точкой. Например, оператор
professor.show;
вызывает применение метода show к объекту professor. Фактически оператор применения метода к объекту — это специфический способ записи оператора вызова процедуры.
В программе методы определяются точно так же, как обычные процедуры и функции, за исключением того, что имя процедуры или функции, являющейся методом, состоит из двух частей: имени класса, к которому принадлежит метод, и имени метода. Имя класса от имени метода отделяется точкой.
Ниже приведен пример определения метода show описанного выше класса ТТРегson.
// метод show класса TTPerson
procedure ТТРегson.show;
begin
ShowMessage(‘Имя:’+fname+#13+'Адрес:'+faddress);
end;
Следует обратить внимание на то, что в операторах метода доступ к полям объекта осуществляется без указания имени объекта.
Обычно методы применяются к ранее созданным объектам программы. Такие методы можно считать методами объектов. В DELPHI существует возможность создания методов, которые можно использовать даже тогда, когда ни один объект класса не создан. К таким методам относятся, например, конструкторы, которые вызываются для создания объектов. Подобные методы называются методами класса и особым образом оформляются (за исключением конструкторов, о которых сказано выше). Объявление такого метода начинается с зарезервированного слова class, после которого следует обычное объявление метода, например:
TMyForm = class(TForm)
class procedure MessageCreate;
end;
…
class procedure TMyForm.MessageCreate;
begin
…
end;
Вызывается такой метод либо как метод класса, тогда перед именем метода в качестве квалификатора записывается тип класса, либо как метод объекта. В этом случае он ничем не отличается от обычных методов: имя его используется либо без квалификатора, если метод вызывается внутри объекта, либо с квалификатором, в качестве которого выступает имя объекта, если метод вызывается извне объекта.
|