Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
30.05.2020
Размер:
194.56 Кб
Скачать

Класи і члени класів

Продовжуючи аналогію з реальним світом, уявіть, що у нас є декілька кішок різного забарвлення, віку і з різними кличками, кожна з яких по-своєму їсть і мурлычит. Але всупереч їх індивідуальним особливостям, всі кішки є, виражаючись мовою ООП, представниками однієї категорії, одного класу: класу кішок. У термінології ООП, кожна окрема кішка називається екземпляром класу кішок.

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

Спадкоємство

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

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

Інкапсуляція

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

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

Поліморфізм

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

Наприклад, ви можете почати з класу Ссавці, у якого є методи Грати() і Спати(). Потім ви створюєте підкласи Кішки, Собаки і Мавпи. Підкласи перевизначають метод Грати() класу Ссавці, щоб відобразити особливості кожного з тварин. Клас Мавпи перевизначає метод Грати()как Стрибок з дерева; Кішки — як Гра з клубком; Собаки — як Лов м'яча. Оскільки функціональність методу Спати() для тварин схожа, ви використовуєте визначення методу з суперкласу.

Контрольні запитання:

1. Технологічні засоби розробки об'єктного підходу.

2. Які принципи покладен в іоснову ООП.

3. Які види ієрархії використовуються в ООП.

Соседние файлы в папке Лекції