
- •Передмова
- •Тема 1: Правила техніки безпеки при роботі з комп’ютером
- •Тема 2: Алфавіт. Ідентифікатори. Константи. Вирази
- •Тема 3: Загальна структура і розділи Pascal-програми
- •Тема 4: Введення і виведення у Pascal-і. Форматоване виведення
- •Тема 5: Прості (скалярні) типи данних
- •Тема 6: Завантаження середовища Турбо Паскаль. Функціональні клавіші
- •Тема 7: Меню опції
- •Тема 8: Вираження і пріоритет операцій. Стандартні математичні функції та процедури
- •Тема 9: Умовний оператор. Вкладений умовний оператор
- •Тема 10: Оператор вибору
- •Тема 11: Оператори циклу. Оператор циклу з параметром
- •Тема 12: Оператор циклу з перед- і з постумовою
- •Тема 13: Складні типи. Масиви
- •Тема 14: Багатомірні масиви
- •Тема 15: Пошук і сортування елементів масиву. Класи алгоритмів сортування
- •Тема 16: Динамічна пам'ять. Адреси і покажчики
- •Тема 17: Оголошення покажчиків, виділення та звільнення динамічної пам’яті
- •Тема 18: Процедури та функції для роботи з динамічною пам’яттю
- •Тема 19: Символьний тип даних. Упаковані масиви
- •Тема 20: Процедури та функції для обробки рядків
- •Тема 21: Структурований тип даних - безліч
- •Тема 22: Структурований тип даних – записи
- •Тема 23: Опис файлових змінних. Обробка типізованих файлів
- •Тема 24: Послідовний та прямий доступ до файлів
- •Тема 25: Обробка не типізованих файлів
- •Тема 26: Робота з текстовими файлами
- •Тема 27: Типізовані константи
- •Тема 28: Поняття та робота з процедурами та функціями
- •Тема 29: Використання модуля crt. Програмування клавіатури
- •Тема 30: Використання модуля crt. Текстове виведення на екран. Програмування звукового генератора
- •Тема 31: Графічні можливості tp 7.0. Використання бібліотеки Graph
- •Тема 32: Бібліотечні модулі користувача
- •Тема 33: Основні принципи ооп. Створення об’єктів. Використання об’єктів
- •Список літератури
- •Додаток а (довідковий) Основні алгоритми обробки масивів
- •Додаток б (довідковий) Питання перевірки знань з теорії
- •Додаток в (довідковий) Поширені коди клавіш
- •Додаток д (довідковий) Коди сканування клавіатури
Тема 33: Основні принципи ооп. Створення об’єктів. Використання об’єктів
Об'єктно-орієнтоване програмування засноване на «трьох китах» - трьох найважливіших принципах, що додають об'єктам нові властивості. Цими принципами є інкапсуляція, спадкоємство і поліморфізм.
Інкапсуляція
Інкапсуляція є об'єднання в єдине ціле даних і алгоритмів обробки цих даних. В рамках ООП дані називаються полями об'єкту, а алгоритми - об'єктними методами.
Інкапсуляція дозволяє в максимальній мірі ізолювати об'єкт від зовнішнього оточення. Вона істотно підвищує надійність програм, що розробляються, оскільки локалізовані в об'єкті алгоритми обмінюються з програмою порівняно невеликими об'ємами даних, причому кількість і тип цих даних зазвичай ретельно контролюються.
В результаті заміна або модифікація алгоритмів і даних, інкапсульованих в об'єкт, як правило, не спричиняє за собою наслідків, що погано просліджуються, для програми в цілому (в цілях підвищення захищеності програм в ООП майже не використовуються глобальні змінні). Іншим важливим наслідком інкапсуляції є легкість обміну об'єктами, перенесення їх з однієї програми в іншу. Можна сказати, що ООП «провокує» розробку бібліотек об'єктів, таких як Turbo Vision.
Спадкоємство
Спадкоємство є властивість об'єктів породжувати своїх нащадків. Об'єкт-нащадок автоматично успадковує від батька всі поля і методи, може доповнювати об'єкти новими полями і замінювати (перекривати) методи батька або доповнювати їх.
Принцип спадкоємства вирішує проблему модифікації властивостей об'єкту і додає ООП в цілому виняткову гнучкість.
При роботі з об'єктами програміст зазвичай підбирає об'єкт, найбільш близький по своїх властивостях для вирішення конкретного завдання, і створює одного або декількох нащадків від нього, які «уміють» робити те, що не реалізоване в батьку.
Послідовне проведення в життя принципу «успадковуй і змінюй» добре узгоджується з поетапним підходом до розробки крупних програмних проектів і багато в чому стимулює такий підхід.
Поліморфізм
Поліморфізм - це властивість родинних об'єктів (тобто об'єктів, що мають одного загального батька) вирішувати схожі по сенсу проблеми різними способами. В рамках ООП поведінкові властивості об'єкту визначаються набором вхідних в нього методів. Змінюючи алгоритм того або іншого методу в нащадках об'єкту, програміст може додавати цим нащадкам відсутні у батька специфічні властивості.
Для зміни методу необхідно перекрити його в нащадку, тобто оголосити в нащадку однойменний метод і реалізувати в нім потрібні дії. В результаті в об'єкті-батьку і об'єкті-нащадку діятимуть два однойменні методи, що мають різну алгоритмічну основу і, отже, різні властивості, що додають об'єктам. Це і називається поліморфізмом об'єктів.
У Турбо Паскалі поліморфізм досягається не лише описаним вище механізмом спадкоємства і перекриття методів батька, але і їх віртуалізацією, що дозволяє батьківським методам звертатися до методів нащадків.
Створення об'єктів
В Турбо Паскалі для створення об'єктів використовуються три зарезервовані слова: object, constructor, destructor до три стандартні директиви: private, public і virtual.
Зарезервоване слово object використовується для опису об'єкту. Опис об'єкту повинен поміщатися в розділі опису типів:
type
Myobject = object
(Поля об'єкту}
{Методи об'єкту}
end ;
Якщо об'єкт породжується від якого-небудь батька, ім'я батька вказується в круглих дужках відразу за словом object:
type
Mydescendantobject = object(Myobject)
. .
end;
Будь-який об'єкт може мати скільки завгодно нащадків, але лише одного батька, що дозволяє створювати ієрархічні дерева спадкоємства об'єктів.
Питання для контролю:
-
Назвіть основні принципи ООП.
-
Поясніть принцип інкапсуляції.
-
Поясніть принцип наслідування
-
Поясніть принцип поліморфізму
-
Створення об’єктів у Турбо Паскалі.