Методы в Object Pascal. Семенов Н.М. - 20 стр.

UptoLike

Составители: 

20
Поскольку обычные методы присоединены к определенным классам, они не могут просто
быть вызваны тем же способом, что и самостоятельные подпрограммы. Они могут быть
активированы только с помощью представителя того класса, в котором они определяются.
С другой стороны, конструкторам и классовым методам для работы не требуется
действительный представитель класса. Когда вызывается конструктор, то вызов делается с
помощью ссылки на сам класс, а не на представителя этого класса. Аналогично, в случае
классовых методов также можно использовать ссылку на класс для их вызова. Однако классовые
методы можно вызвать и через представителя класса, таким же способом, что и в случае
обычных методов.
Фундаментальное различие методов и обычных подпрограмм заключается в том, что
метод доступен только через представителя класса, в котором он определяется.
Кроме того, методы рассматриваются как код, встроенный в контекст их класса, и
поэтому у них во время работы есть доступ к полям экземпляра объекта, использованного при
вызове.
Обычные методы вызываются так, как будто в их списке параметров присутствует
дополнительный параметр Self, который во время выполнения связывает код метода с
конкретным представителем класса. Любые поля этого дополнительного параметра Self
автоматически доступны внутри метода.
2.1 Вызов конструктора
Если в некотором классе не определен конструктор, то при вызове надо использовать
конструктор, унаследованный от класса-предшественника. В любом случае у всех объектов есть
доступ к конструктору Create, определенному в классе TObject.
Общий синтаксис вызова конструктора следующий:
var
AnInstance:ИмяКласса;
begin
. . .
AnInstance:=ИмяКласса.ИмяКонструктора(<Параметры>);
. . .
end;
Например:
var
FormInstance:TForm1;
begin
FormInstance:=TForm1.Create(Self);
end;
В отличие от случая большинства других методов конструктор вызывается при помощи
ссылки на класс объекта. Поскольку представителя этого класса еще не существует, то нет
возможности на него сослаться. Поэтому мы просим сам класс создать для нас экземпляр
объекта.