Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОГРАМУВАННЯ ТА АЛГОРИТМІЧНІ МОВИ.doc
Скачиваний:
23
Добавлен:
28.10.2018
Размер:
543.74 Кб
Скачать

Наслідування

Під Наслідування будемо мати на увазі властивість, за допомогою якого один об'єкт може набувати властивостей іншого. При цьому підтримується концепція ієрархічної класифікації, що має напрям зверху вниз. При прийнятті концепції наслідування, для новостворюваних об'єктів необхідно визначати тільки ті властивості, які роблять його унікальним у межах свого класу. Об'єкт може успадковувати загальні атрибути від батьківських по відношенню до нього класів.

Синтаксис опису об'єкту:

class імя_классу: імя_батьківського_класу

{

тіло_класу

}

Приклад опису об'єкту:

class Predator: Animal

{

private int Speed;

}

Спадкування формує ієрархію класів на основі відношення часткового порядку ISA ("бути").

Ієрархія може бути побудована і для об'єктів. У цьому випадку вона має структуру, яка будується на основі відношення структурного входження ("частина-ціле"), при якому один об'єкт є частиною іншого.

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

Метод  – систематизована сукупність кроків, які потрібно здійснити для виконання певної задачі, досягнення мети. Поняття тотожне алгоритму діяльності чи технологічного процесу.

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

В об'єктно-орієнтованому програмування конструктор класу (від англ. constructor, деколи скорочують ctor) — спеціальний блок інструкцій, який викликається при створенні об'єкта.

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

В більшості мов конструктор може бути перевантаженим, що дозволяє використовувати кілька конструкторів в одному класі, причому кожен конструктор має різні параметри. Деякі мови розрізняють кілька особливих типів конструкторів:

  • Типовий конструктор — конструктор, що не приймає аргументів.

  • Конструктор копіювання — конструктор, що приймає в якості аргументу об'єкт того ж класу, або посилання на нього

В Delphi, на відміну від C++, для оголошення конструктора служить ключове слово constructor. Ім'я конструктора може бути будь-яким, але рекомендується вживати назвуCreate.

Приклад

TClassWithConstructor = class

public

constructor Create;

end

С++

Ім'я конструктора повинно збігатися з ім'ям класу. Допускається використовувати кілька конструкторів з однаковим ім'ям, але з різними параметрами.

class ClassWithConstructor {

public:

/* Ініціалізація внутрішнього об'єкта за допомогою конструктора */

ClassWithConstructor(float parameter): object(parameter) {}/* виклик конструктора AnotherClass(float); */

private:

AnotherClass object;

};

Конструктор - це метод, що викликається тільки один раз у момент створення екземпляра об'єкта відповідного класу. Конструктор вважається методом класу (class procedure), що дозволяє викликати його, вказуючи не тільки ім'я об'єкта, але й ім'я класу. Для конструктора виділене спеціальне ключове слово constructor

constructor CreateMyObject(MySize: Integer);

Конструкторів у об'єкта може бути скільки завгодно, однак створюватися об'єкт може за допомогою тільки одного з них.

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

Деструктор - це метод, що викликається тільки один раз у момент знищення екземпляра об'єкта відповідного класу. Клас TObject має стандартний деструктор Destroy. Дозволяється створювати необмежене число деструкторів за допомогою ключового слова destructor:

destructor MyDestructor;