Программирование в среде Delphi. Часть 2. Создание оконных приложений. Садовская О.Б. - 7 стр.

UptoLike

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

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;
      М ет од ы кла сса н е д олж н ы об ра ща ться к поля м , т.к. в об щем
слу ча е вызыва ю т ся б ез созд а н ия об ъект а . Об ычн о э     т и м ет од ы воз-
вра ща ю т слу ж еб н у ю ин ф орм а цию о кла ссе – им я кла сса , им я род и-
т ельского кла сса и т.п.