Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Отчеты по практике » Основи програмування в середовищі Delphi

Реферат Основи програмування в середовищі Delphi





p> constructor TNumber.Create (n_: integer);

begin

inherited Create;

n: = n_;

end;

Мінлива класу TNumber створюється і видаляється так:

var

num: TNumber;

...

num: = TNumber.Create (10);

Label1.Caption: = IntToStr (num.n);

num.Destroy;

Тут описаний покажчик на клас TNumber. Конструктор Create виділяє місце в динамічної пам'яті, достатню для розміщення об'єкта, і ініціалізує його. У передостанньому рядку значення поля num перетворюється в рядок і виводиться на форму через мітку (елемент керування типу TLabel). Зверніть увагу на те, що операція разименовиванія для доступу до об'єкту не використовується.

Якщо конструктор або деструктор в класі заданий, обидва вони успадковуються від предка, а в кінцевому рахунку - від TObject, у відповідних методах якого задається розміщення об'єкта в пам'яті і її визволення.

Якщо потрібно перевизначити віртуальний метод, він описується з ключовим словом override, а не virtual. Якщо ж вказати в нащадку слово virtual, це буде сприйнято компілятором як початок нової ієрархії віртуальних методів.

Конструктор в Delphi може бути віртуальним, оскільки він розміщує об'єкт у динамічній пам'яті тільки при першому виклику, а під час усіх наступних викликів виконується як звичайний метод.

У класах, призначених для створення не об'єктом, а нащадків, дозволяється визначати методи з ключовим словом abstract. Для таких методів реалізація задається тільки в нащадках класу. Клас, який містить хоча б один абстрактний метод, називається абстрактним. Створювати екземпляри об'єктів такого класу забороняється, а в нащадках, призначених для створення об'єктів, всі абстрактні методи треба обов'язково перевизначити. Абстрактні методи призначені для завдання загального інтерфейсу ієрархії.

При перевизначенні звичайних методів у похідному класі безпосередній доступ до однойменним методом предка неможливий. Щоб обійти це обмеження, при описі методу нащадка можна задати ключове слово overload (перевантажений). У перевантажених методів повинен відрізнятися список параметрів, оскільки саме по типам аргументів компілятор вибирає, який з однойменних методів викликати. Перевантажені методи не можуть оголошуватися в одному і тому ж класі - тільки в предків і нащадків, наприклад:

type

a = class

procedure max (a, b: integer): overload;

end;

b = class (a)

procedure max (a: real; b: integer; s: char): overload;

end;

...

var

x: b;

...

x.max (20,3); {Викликається метод з класу a}

x.max (0.1,10, 'u'); {Викликається метод з класу b}

Віртуальні методи також можна перевантажувати, але при цьому стає неможливим доступ до методу предка і компілятор видає попередження. Щоб підтвердити компілятору свої наміри, можна використовувати ключове слово reintroduce. Розглянемо варіанти перевизначення віртуальних методів на прикладі:

type

a = class

procedure p1; virtual;

procedure p2; virtual;

procedure p3; virtual;

procedure p4; virtual;

procedure p5; virtual;

end;

b = class (a)

procedure p1;

procedure p1; reintroduce;

procedure p1; override;

procedure p1; virtual;

procedure p1; reintroduce; virtual;

end;

...

var

x: a;

...

x: = b.create;

x.p1; x.p2; x.p3; x.p4; x.p5;

У похідному класі b процедурі р1 перевизначає віртуальний метод на просте (Видається попередження про те, що доступ до відповідного методу предка закрито), процедура р2 робить те ж саме, але попередження не видається, процедура р3 перевизначає віртуальний метод традиційним способом (для забезпечення поліморфізму), р4 починає нове сімейство віртуальних методів (Доступ до методу предка закривається, видається попередження), і, нарешті, процедура р5 робить те ж саме, що і р4, але попередження не видається.

При виклику цих методів для об'єкта похідного класу через вказівник на базовий клас метод нащадка викликається тільки у разі x.p3. Властивості (доступ до яких забезпечується через вкладку properties інспектора об'єктів) служать для організації доступу до полів класу. Як правило, властивість пов'язана з полем класу і визначає методи його отримання і установки. Спрощено визначення властивості виглядає так:

property ім'я: тип

[read імя_метода_ілі_поля] {метод отримання}

[write імя_метода_ілі_поля] {метод Устанвка}

Наприклад:

type

a = class

private FSize: word;

function GetSize: word;

procedure SetSize (x_: word);

property Size: word read GetSize write SetSize;

end;

Тут властивість Size визначає інтерфейс доступу...


Назад | сторінка 2 з 4 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Procedure of preparation business-plan
  • Реферат на тему: Методи кластерізації: процедура Мак-кіна, метод К-методів, сітчасті методи
  • Реферат на тему: Порівняння методів одновимірної оптимізації: метод золотого перетину і мето ...
  • Реферат на тему: Порівняння ефективності різних методів розв'язання систем лінійних алге ...
  • Реферат на тему: У фокусі Microsoft Virtual Server 2005