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

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

  1. декларувати властивості об'єктів для зберігання даних разом з об'єктом.

  2. методи для доступа до властивостей об'єкта відповідно до заздалегідь визначених правил.

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

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

Три властивості характеризують об'єкти:

  1. Унікальність: властивість об'єкта, яка відрізняє його від інших об'єктів.

  2. Стан: описує дані, що зберігаються в об'єкті.

  3. Поведінка: описує методи в інтерфейсі через які може використовуватись об'єкт.

  1. Поняття успадкування. Наслідування

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

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

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

{

тіло_класу

}

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

class Predator: Animal

{

private int Speed;

}

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

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

В об'єктно-орієнтованому програмуванніуспадкува́ння — метод утворення нових класів на основі використання вже існуючих.

Принцип успадкування

Визначення нового класу (породжений класпідклас, англ. derived class, англ. subclass) може базуватись на визначенні вже існуючого (базовий клас, англ. base class, англ. superclass). В такому випадку, новий клас отримає властивості та поведінку базового класу, та доповнить їх своїми власними. У випадку одиничного успадкування, у кожного класу може бути лише один безпосередній базовий клас. У випадку множинного успадкування, дозволяється існування декількох безпосередніх надкласів.

Застосування методу успадкування дозволяє покращити повторне використання коду шляхом використання вже визначених властивостей та методів (поведінки) базових класів.

  1. Поліморфізм. Віртуальні та динамічні методи.

Поліморфі́зм — концепція в програмуванні, відповідно до якої використовується спільний інтерфейс для обробки даних різних спеціалізованих типів.

На противагу поліморфізму, концепція мономорфізму вимагає однозначного зіставлення.

В контексті об'єктно-орієнтованого програмування, найпоширенішим різновидом поліморфізму є здатність екземплярів підкласу грати роль об'єктів батьківського класу, завдяки чому екземпляри підкласу можна використовувати там, де використовуються екземляри батьківського класу.

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

1 + 2 - операнди цілого типу, результат цілого типу.

1.2 + 1.0e3 - операнди дійсних типів, результат дійсного типу

"коля" + "маня" - операнди рядки, результат конкатенований рядок

Поліформізм реалізується в багатьох мовах програмування за домогою перевантаження функцій.