Читайте также:
|
|
Безусловно, перед тем как использовать объект, следует объявить его класс. В Object Pascal это делается с помощью ключевого слова class. Объявления классов помещаются в раздел объявления типов модуля или программы.
type TFooObject = class;
Только после объявления класса можно делать объявление переменных этого типа (называемых также экземплярами – instance) в разделе var.
var FooObject: TFooObject;
Полностью объект создается с помощью вызова одного из конструкторов (constructor) соответствующего класса. Конструктор отвечает за создание объекта, а также за выделение памяти и необходимую инициализацию полей. Он не только создает объект, но и приводит его в состояние, необходимое для его дальнейшего использования.
Каждый класс содержит по крайней мере один конструктор Create, который может иметь различное количество параметров разного типа – в зависимости от типа объекта. Ниже рассматривается только простейший конструктор Create без параметров.
Необходимо запомнить, что, в отличие от других языков программирования, например C++, конструкторы в языке Object Pascal не вызываются автоматически. Создание каждого объекта с помощью вызова его конструктора входит в обязанности программиста. Синтаксис вызова конструктора следующий.
FooObject:= TFooObject.Create;
Обратите внимание на особенность вызова конструктора – он вызывается с помощью ссылки на класс, а не на экземпляр класса (в отличие от других методов, которые вызываются с помощью ссылки на класс). В этом есть глубокий смысл – ведь экземпляр объекта FooObject в момент вызова конструктора еще не создан.
Но код конструктора класса TFooObject статичен и находится в памяти. Он относится к классу, а не к его экземпляру, поэтому такой вызов вполне корректен. Вызов конструктора для создания экземпляра класса часто называют созданием объекта.
При создании объекта с помощью конструктора компилятор гарантирует, что все поля объекта будут инициализированы. Все числовые поля будут обнулены, указатели примут значение nil, а строки будут пусты.
Дата добавления: 2015-07-25; просмотров: 49 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Свойства | | | Уничтожение объекта |