Об'єктно-орієнтоване програмування

TFirstObject  = class(TObject)

. . .

end;

Щоб використовувати клас у програмі, потрібно, як мінімум, оголосити перемінну цього типу. Перемінна об'єктного типу називається екземпляром чи класу об'єктом.

var

AMyObject: TMyObject;

До введення терміна "клас" у мові Pascal існувала двозначність визначення "об'єкт", що міг позначати і тип, і перемінну цього типу. Тепер же існує чітка границя: клас — це опис, об'єкт — те, що створено відповідно до цього опису.

Як створюються і знищуються об'єкти?

Ті, хто раніш використовував ООП у роботі на C++ і особливо в Turbo Pascal, будьте уважні: у Object Pascal екземпляри об'єктів можуть бути тільки динамічними. Це означає, що в приведеному вище фрагменті перемінна AMyObject насправді є покажчиком, що містить адресу об'єкта.

Об'єкт "з'являється на світло" у результаті виклику спеціального методу, що инициализирует об'єкт — конструктора. Створений екземпляр знищується іншим методом — деструктором.

AMyObject := TMyObject. Create;

{ дії зі створеним об'єктом }

AMyObject. .

Destroy;

Але, скаже уважний читач, адже об'єкта ще ні, як ми можемо викликати його методи? Справедливе зауваження. Однак зверніть увагу, що викликається метод TMyObject. create, а не AMyObject. Create. Є такі методи (у тому числі конструктор), що успішно працюють до (чи навіть без) створення об'єкта. Про подібні методи, називаних методами класу, піде мова трохи нижче.

У Object Pascal конструкторів у класу може бути кілька. Загальноприйнято називати конструктор Create (на відміну від Turbo Pascal, де конструктор звичайно називався init, і від C++, де його ім'я збігається з ім'ям класу). Типова назва деструктора — Destroy.

type

TMyObject = class(TObject)

MyField: Integer;

Constructor Create;

Destructor Destroy;

Function MyMethod: Integer;

end;

Для знищення екземпляра об'єкта рекомендується використовувати метод Free, що спочатку перевіряє покажчик ( чине дорівнює він ыи) і тільки потім викликає Destroy:

AMyObject. Free;

До передачі керування тілу конструктора відбувається власне створення об'єкта — під нього приділяється пам'ять, значення всіх полів обнуляются. Далі виконується код конструктора, написаний програмістом для ініціалізації екземплярів даного класу. Таким чином, хоча на перший погляд синтаксис конструктора схожий з викликом процедури (не визначене значення, що повертається,), але насправді конструктор — це функція, що повертає створений і инициализированный об'єкт.

Щоб правильно инициализировать у створюваному об'єкті полючи, що відносяться до класу-предка, потрібно відразу ж при вході в конструктор викликати конструктор предка за допомогою зарезервованого слова inherited:

constructor TMyOb ject. Create;

begin

inherited Create;

end;

Що таке ядро

Ядро є серцем операційної системи і забезпечує виконання основних системних задач для роботи інших додатків.

Підготовка до побудови нового ядра

Для цього потрібні лише невеликі знання мови програмування

1 2 3 4 5 6