Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОП Конспект лекций - Паскаль.doc
Скачиваний:
20
Добавлен:
30.11.2018
Размер:
1.46 Mб
Скачать

Тема 33: Основні принципи ооп. Створення об’єктів. Використання об’єктів

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

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

Інкапсуляція є об'єднання в єдине ціле даних і алгоритмів обробки цих даних. В рамках ООП дані називаються полями об'єкту, а алгоритми - об'єктними методами.

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

В результаті заміна або модифікація алгоритмів і даних, інкапсульованих в об'єкт, як правило, не спричиняє за собою наслідків, що погано просліджуються, для програми в цілому (в цілях підвищення захищеності програм в ООП майже не використовуються глобальні змінні). Іншим важливим наслідком інкапсуляції є легкість обміну об'єктами, перенесення їх з однієї програми в іншу. Можна сказати, що ООП «провокує» розробку бібліотек об'єктів, таких як Turbo Vision.

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

Спадкоємство є властивість об'єктів породжувати своїх нащадків. Об'єкт-нащадок автоматично успадковує від батька всі поля і методи, може доповнювати об'єкти новими полями і замінювати (перекривати) методи батька або доповнювати їх.

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

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

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

Поліморфізм

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

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

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

Створення об'єктів

В Турбо Паскалі для створення об'єктів використовуються три зарезервовані слова: object, constructor, destructor до три стандартні директиви: private, public і virtual.

Зарезервоване слово object використовується для опису об'єкту. Опис об'єкту повинен поміщатися в розділі опису типів:

type

Myobject = object

(Поля об'єкту}

{Методи об'єкту}

end ;

Якщо об'єкт породжується від якого-небудь батька, ім'я батька вказується в круглих дужках відразу за словом object:

type

Mydescendantobject = object(Myobject)

. .

end;

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

Питання для контролю:

  1. Назвіть основні принципи ООП.

  2. Поясніть принцип інкапсуляції.

  3. Поясніть принцип наслідування

  4. Поясніть принцип поліморфізму

  5. Створення об’єктів у Турбо Паскалі.