Самоучитель по Delphi 7 для профессионалов


Объект изнутри - часть 3


type

TObject = class;

TClass = class of TObject;

Аналогичные указатели уже описаны и для других важных классов. Вы можете использовать в своей программе TComponentClass, TControlClass и т. п.

Указатели на классы тоже подчиняются правилам приведения объектных типов. Указатель на класс-предок может ссылаться и на любые дочерние классы; обратное невозможно:

type 

TFirst = class

..

end;

TSecond = class(TFirst)

...

end;

TFirstClass = class of TFirst; 

TSecondClass = class of TSecond;

var

AFirst : TFirstClass;

ASecond : TSecondClass; 

begin

AFirst := TSecond; {допустимо}

ASecond := TFirst; {недопустимо} 

end.

С указателем на класс тесно связано понятие методов класса. Такие методы можно вызывать без создания экземпляра объекта — с указанием имени класса, в котором они описаны. Перед описанием метода класса нужно поставить зарезервированное слово class:

type

TMyObject = class(TObject)

class function GetSize: string;

end; 

var

MyObj ect: TMyObj ect;

AString: string;

 begin

AString := TMyObject.GetSize;

MyObject := TMyObject.Create;

AString := MyObject.GetSize; 

end.

Разумеется, методы класса не могут использовать значения, содержащиеся в полях класса: ведь экземпляра-то не существует. Возникает вопрос: для чего нужны такие методы?

Важнейшие методы класса определены в самом TObject: они как раз и позволяют, не углубляясь во внутреннюю структуру класса, извлечь оттуда практически всю необходимую информацию.

 




Начало  Назад  Вперед