русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Конструктори і деструктори


Дата додавання: 2014-04-22; переглядів: 963.


Конструктори – це спеціальні методи, які створюють та ініціалізують об’єкт. Об’єкт створюється виділенням для нього області в динамічно розподіленій пам’яті. Оголошення конструктора виглядає так само, як і оголошення процедури, але починаються ключовим словом constructor. В якості імені конструктора звичайно задають ім’я Create.Часто в конструктор передають в якості параметра власника об’єкту. Власник об’єкту Owner – це той об’єкт, при знищенні якого знищується і даний об’єкт. Приклади оголошення конструкторів:

constructor Create;

constructor Create(Owner:TComponent);

 

При реалізації конструктора звичайно першим йде виклик успадкованого конструктора за допомогою ключового слова inherited.В результаті ініціалізуються всі успадковані поля. При цьому порядковим типам в якості початкового значення задається 0, вказівникам – nil,рядки задаються порожніми, а поля типуVariant – Unassigned.Потім ініціалізуються нові поля, введені в даному класі.

Деструктори – це спеціальні методи, які знищують об’єкт і вивільняють зайняту ним пам’ять. Оголошення деструктора виглядає так само, як оголошення процедури, але починається ключовим словом destructor.В якості імені деструктора звичайно задають ім’я Destroy.Реалізація деструктора як правило завершується викликом успадкованого деструктора за допомогою ключового слова inherited,щоб вивільнити пам’ять, виділену для успадкованих полів.

 

Події

Подія – це спеціальна властивість, що є вказівником функції. Тип узагальненого вказівника на функцію, якій передається один параметр типу TObject – TNotifyEvent. Приклади подій – OnClick, FormCreate, FormClose, OnMouseMove.

 

Приклад реально оголошеного класу (Програма 8.1)

type

TEditBukwa = class(TEdit)

private

{ Private declarations }

FClear:TNotifyEvent;

FEnableBukwa:boolean;

FEnableLet:boolean;

FModified:boolean;

protected

{ Protected declarations }

procedure SetEnableBukwa(Value:boolean);

procedure SetEnableLet(Value:boolean);

procedure KeyPress(var Key:Char);override;

public

{ Public declarations }

property Modified:boolean read FModified default true;

constructor create(AOwner:TComponent);override; //конструктор

procedure Clear;override;

published

{ Published declarations }

property OnClear:TNotifyEvent read FClear write FClear;

property EnableBukwa:boolean read FEnableBukwa write SetEnableBukwa default true ;

property EnableLet:boolean read FEnableLet write SetEnableLet default true;

 

end;

Програма 8.1


<== попередня лекція | наступна лекція ==>
Методи та їх успадковування, поліморфізм | Підсумок


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн