ВУЗ:
Составители:
Рубрика:
9
. . .
end;
Примеры:
type
TClientWindow = class (TWindow)
. . .
class function NumInstances;
class function DefaultCaption : String;
class function DefaultWidth : Integer;
. . .
end;
В классе можно одновременно объявлять несколько классовых методов - как классовых
процедур, так и классовых функций.
В обоих случаях основная часть объявления классовых методов должна соответствовать
тем же правилам, что и для обычных методов - процедур и методов - функций.
1.5 Реализация методов
После успешного объявления метода в определении класса надо реализовать его, то есть
дать описание действий, которые должны быть выполнены представителем класса при вызове
метода.
1.5.1 Скрытый параметр Self
Между самостоятельными подпрограммами и методами существует существенное
различие, заключающееся в способе доступа к данным представителя класса.
Самостоятельные подпрограммы могут работать с элементами данных, которые переданы
подпрограммам предпочтительно в виде параметров.
Самостоятельные подпрограммы имеют доступ к любым данным, объявленным
глобально в модуле или программе, в которых эти подпрограммы определяются, а также ко всем
глобальным данным других модулей, перечисленных в списке uses.
С другой стороны, реализациям обычных (то есть не являющихся классовыми) методов
доступны не только все те данные, которые были бы доступны подпрограмме. Методы также
имеют неявный доступ к полям того представителя класса, который был использован в вызове.
Это выглядит так, как будто каждому методу при вызове передается дополнительный
параметр, указывающий на использовавшийся при вызове экземпляр объекта, и внутри метода
стоит неявный оператор with, заключающий в себя все тело метода.
Несмотря не то, что этот дополнительный параметр не виден в определении метода, он
неявно присутствует в методе и называется Self. Параметр Self имеет тот же тип, что и класс, в
котором определен метод.
Все тело метода заключено в неявный оператор with Self do, который предоставляет
методу доступ к полям, свойствам и другим методам данного представителя класса.
Неявный оператор with действует примерно следующим образом:
begin
with Self do begin
. . .
Страницы
- « первая
- ‹ предыдущая
- …
- 7
- 8
- 9
- 10
- 11
- …
- следующая ›
- последняя »