logo
Программирование в среде Delphy / Программирование в среде Delphi

17.1. Объекты и классы

Класс – это тип объекта. Он характеризует объект вместе с его свойствами и правилами поведения. Объект есть экземпляр класса. В Delphi все объекты динамические. Для выделения памяти под объект используется специальный метод данного класса Constructor Create – это функция, которая возвращает адрес на вновь созданный объект. Освобождение памяти, выделенной ранее объекту, осуществляется методом Dectructor Destroy. Для объектов и классов сделано одно исключение из общих правил работы на Паскале с динамическими переменными – для них не используется символ ^ (тильда) для указателей и содержимого указываемой памяти. Переменные, описанные в классе, называют полями. Любая процедура или функция, описанная в классе, является уже методом. При вызове любого метода ему неявным образом передается первым параметром Self, который является указателем на объект, который вызвал данный метод. Если процедура описана вне класса, но за ее описанием следуют слова of object, то это тоже будет метод. Классы могут быть описаны или в интерфейсной части модуля Unit, или в самом начале секции реализации Implementation. Не допускается их описание внутри процедур и функций. Если перед описанием метода стоит ключевое слово class, то это классовый метод и его можно вызывать даже в том случае, если объекту еще не была выделена память. Типичный пример класса:

Type TmyObject=class(Tobject)

x,y:integer;

Constructor Create;

Destructor Destroy;virtual;

Procedure Show;

End;

В скобках после ключевого слова class указывается наследуемый класс. Delphi поддерживает только единичное наследование классов. Объект Tobject является прародителем всех классов и не наследует никаких других классов.