ВУЗ:
Составители:
Рубрика:
7
вает полям объекта начальные значения. При этом поля порядковых
типов в качестве начального значения получают 0, строкового – пус-
тую строку , поля -указатели – значение nil. Кроме того, конструктор
помещает ссылку на созданный объект в переменную Self, которая
автоматически объявляется в классе. Обращение к полям, свойствам и
методам объекта должно осуществляться только после вызова конст -
руктора .
Деструктор освобождает динамическую память и уничтожает объ-
ект .
Для объявления конструктора и деструктора используются заре -
зервированные слова constructor и destructor соответственно.
Например:
type tSample = class
text : string;
constructor Create;
destructor Destroy;
end;
Для создания объекта необходимо применить метод -конструктор к
классу объекта:
var MyObj : tSample;
begin
……………………………
MyObj := tSample.Create;
……………………………
end;
Кроме деструктора Destroy, в базовом классе tObject определён
метод Free, который прежде проверяет , был ли объект на самом деле
создан, и только потом вызывает метод Destroy.
Некоторые методы могут вызываться без создания и инициализа -
ции объекта. Такие методы называются методами класса и объявля -
ются с помощью зарезервированного слова class:
type tMyClass = class
class function GetClassName:string;
end;
var s : string;
begin
s:=TMyClass.GetClassName
………………………………
end;
Методы класса не должны обращаться к полям, т.к. в общем
случае вызываются без создания объекта. Обычно эти методы воз-
вращают служебную информацию о классе – имя класса , имя роди-
тельского класса и т.п.
7 ва ет поля м об ъект а н а ча льн ые зн а чен ия . При э т ом поля поря д ковых т ипов в ка чест ве н а ча льн ого зн а чен ия полу ча ю т 0, строкового – пу с- т у ю ст року , поля -у ка за т ели – зн а чен ие nil. К ром е т ого, кон ст ру кт ор пом еща ет ссылку н а созд а н н ый об ъект в перем ен н у ю Self, котора я а вт ом а тически об ъя вля ет ся в кла ссе. Об ра щен ие к поля м , свойст ва м и м ет од а м об ъект а д олж н о осу щест вля ться т олько после вызова кон ст - ру кт ора . Д естру кт ор освоб ож д а ет д ин а м ическу ю па м я т ь и у н ичт ож а ет об ъ- ект . Д ля об ъя влен ия кон стру кт ора и д ест ру кт ора использу ю т ся за ре- зервирова н н ые слова constructor и destructor соот вет ст вен н о. Н а прим ер: type tSample = class text : string; constructor Create; destructor Destroy; end; Д ля созд а н ия об ъект а н еоб ход им о прим ен ит ь м ет од -кон ст ру кт ор к кла ссу об ъект а : var MyObj : tSample; begin … … … … … … … … … … … MyObj := tSample.Create; … … … … … … … … … … … end; К ром е д естру кт ора Destroy, в б а зовом кла ссе tObject опред елён м ет од Free, кот орый преж д е проверя ет , б ыл ли об ъект н а са м ом д еле созд а н , и только пот ом вызыва ет м етод Destroy. Н екот орые м етод ы м огу т вызыва т ься б ез созд а н ия и ин ициа лиза - ции об ъекта . Т а кие м ет од ы н а зыва ю т ся м ет од а м и кла сса и об ъя вля - ю т ся с пом ощью за резервирова н н ого слова class: type tMyClass = class class function GetClassName:string; end; var s : string; begin s:=TMyClass.GetClassName … … … … … … … … … … … … end; М ет од ы кла сса н е д олж н ы об ра ща ться к поля м , т.к. в об щем слу ча е вызыва ю т ся б ез созд а н ия об ъект а . Об ычн о э т и м ет од ы воз- вра ща ю т слу ж еб н у ю ин ф орм а цию о кла ссе – им я кла сса , им я род и- т ельского кла сса и т.п.
Страницы
- « первая
- ‹ предыдущая
- …
- 5
- 6
- 7
- 8
- 9
- …
- следующая ›
- последняя »