Реферат: Об єктно-орієнтоване програмування
До введення терміна "клас" у мові 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;
Що таке ядро
Ядро є серцем операційної системи і забезпечує виконання основних системних задач для роботи інших додатків.
Підготовка до побудови нового ядра
Для цього потрібні лише невеликі знання мови програмування С. небагато везіння і терпіння.
Навіщо взагалі може знадобитися установка нового ядра? Основних причин дві: