5.3 Статические поля илм поля классов |
Вверх Предыдущий Следующий |
Объект может содержать классы или статические поля: эти поля являются глобальными по отношению объекту, и действуют как глобальные переменные, но известны только в области видимости объекта. Различие между статическими переменными и переменными класса это режим, в котором они работают: Статическая переменная (ключевое слово static) будет работать всегда, ключевое слово class будет нужно в режиме {$MODE DELPHI}. На них можно ссылаться из методов объекта, также можно ссылаться извне объекта, используя полное имя. Для примера, выход следующей программы {$mode delphi} {$static on} type cl=object l : longint; static; class var v : integer; end;
var cl1,cl2 : cl; begin Writeln('Статический'); cl1.l:=2; writeln(cl2.l); cl2.l:=3; writeln(cl1.l); Writeln(cl.l); Writeln('Класс'); cl1.v:=4; writeln(cl2.v); cl2.v:=5; writeln(cl1.v); Writeln(cl.v); end. будет следующим: Статический 2 3 3 Класс 4 5 5 Обратите внимание, что последняя строка кода ссылается на сам тип объекта (cl), а не на экземпляр объекта (cl1 или cl2). |