«аочное дистанционное образование с получением государственного диплома через Internet










ѕолучить информацию о поступлении
 
√лавна€ Ќовости  арта сайта ‘отоальбом √остева€ книга  онтакты

{LTS}

 

 онструкторы и деструкторы

ћетоды, которые предназначены дл€ создани€ и удалени€ объектов называютс€ конструкторами и деструкторами соответственно. ќписание данных методов отличаетс€ от обычных тем, что в их заголовках сто€т ключевые слова constructor и destructor. ¬ качестве имен конструкторов и деструкторов в базовом классе TObject и многих других классах используютс€ имена Create и Destroy.

ѕрежде чем обращатьс€ к элементам объекта, его нужно создать с помощью конструктора. Ќапример: ObjectA:=TOwnClass.Create;

 онструктор выдел€ет пам€ть дл€ нового объекта, задает нулевые значени€ дл€ пор€дковых полей, значение nil Ц дл€ указателей и полей классов, строковые пол€ устанавливает пустыми, а также возвращает указатель на созданный объект.

 лассы объектов определ€ютс€ в секции type глобального блока. ќписание класса начинаетс€ с ключевого слова class и заканчиваетс€ ключевым словом end.

„тобы от описани€ класса перейти к объекту, следует выполнить соответствующее объ€вление в разделе var: Var math:TMatematica;

ѕеременна€ math Ц это ссылка на экземпл€р (объект в пам€ти), которого физически еще не существует. „тобы сконструировать объект (выделить пам€ть дл€ экземпл€ра) класса TMatematica и св€зать с ним переменную math, нужно в тексте программы поместить следующий оператор: math:= TMatematica.Create;

Create Ц это конструктор объекта; он всегда присутствует в классе и служит дл€ создани€ и инициализации экземпл€ров. ѕри создании объекта в пам€ти выдел€етс€ место только дл€ его полей. ћетоды, как и обычные процедуры и функции, помещаютс€ в область кода программы; они могут работать с любыми экземпл€рами своего класса и не дублируютс€ в пам€ти.

ѕосле создани€ объект можно использовать в программе: получать и устанавливать значени€ его полей, вызывать его методы. ƒоступ к пол€м и методам объекта происходит с помощью имен, например: math.x1;

 роме того, как и при работе с запис€ми, допустимо использование оператора with, например:

with math do

x1;

≈сли объект становитс€ ненужным, он должен быть удален вызовом специального метода Destroy (освобождение пам€ти, занимаемой объектом), например: math.Destroy;

Destroy Ц это деструктор объекта; он присутствует в классе нар€ду с конструктором и служит дл€ удалени€ объекта из динамической пам€ти. ѕосле вызова деструктора переменна€ math становитс€ несв€занной и не должна использоватьс€ дл€ доступа к пол€м и методам уже несуществующего объекта. „тобы отличать в программе св€занные объектные переменные от несв€занных, последние следует инициализировать значением nil.

¬ызов деструктора дл€ несуществующих объектов недопустим и при выполнении программы приведет к ошибке. „тобы избавить от лишних ошибок, в объекты ввели предопределенный метод Free, который следует вызывать вместо деструктора. ћетод Free сам вызывает деструктор Destroy, но только в том случае, если значение объектной переменной не равно nil: math.Free;

ѕосле уничтожени€ объекта переменна€ math сохран€ет свое значение, продолжа€ ссылатьс€ на место в пам€ти, где объекта уже нет. ≈сли эту переменную предполагаетс€ еще использовать, то желательно присвоить ей значение nil, чтобы программа могла проверить, существует объект или нет. “аким образом, наиболее правильна€ последовательность действий при уничтожении объекта должна быть следующа€:

math.Free;

math:= nil;

— помощью стандартной процедуры FreeAndNil это можно сделать проще и элегантнее:

FreeAndNil(math);


”знать как сэкономить в кризис моно на сайте ekonom-it.ru

 омпьютерный сленг (Ё, ё и я) ќписание некоторых €зыков программировани€ ќписание некоторых €зыков программировани€ (продолжение) ќписание некоторых €зыков программировани€ (продолжение)  омпьютерное моделирование ѕервый в мире Web-сайт √ипертекст, гиперссылка, гипермедиа ƒень программиста ѕроисхождение смайлов ѕроисхождение цифр 


 
     
   
 


ѕриглашаем прин€ть участие в круглом столе!
подробнее   >>>
 

»нститут ћенеджмента, Ёкономики и »нноваций начинает набор на курсы повышени€ квалификации!
подробнее   >>>
 

”важемые студенты јЌќ ¬ѕќ »ћЁи»!
подробнее   >>>
 

Ќачинаетс€ набор на курсы повышени€ квалификации!
подробнее   >>>
 

ѕриглашаем прин€ть участие в конференци€х!
подробнее   >>>
 


все новости...

 


–ассылки Subscribe.Ru
—овременное образование
ѕодписатьс€ письмом