ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »
