Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_16-18.docx
Скачиваний:
5
Добавлен:
06.11.2018
Размер:
39.61 Кб
Скачать

Лабораторна робота №15-16. Тема: Об’єктно-орієнтоване програмування

6.1. Основні поняття

Мова Vіsual Basіc .NET є об’єктно-орієнтованою мовою. Це означає, що всі функціональні частини додатка розглядаються як об'єкти, що містять у собі деякі властивості, здатні виконувати певні методи й генерувати події. Необхідно чіткий поділ понять клас і об'єкт. Клас є описом об'єкта, у той час як об'єкт є конкретним представником певного класу. Тобто кожний об'єкт є екземпляром певного класу. Наприклад, поняття "автомобіль" описує цілий клас об'єктів, які мають чотири колеса, кермо й уміють пересуватися, у той час як кожний конкретний автомобіль є об'єктом зі своїми розмірами коліс, положенням керма й швидкістю пересування.

Основними поняттями об’єктно-орієнтованого програмування є інкапсуляція, спадкування, поліморфізм.

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

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

Відстежити це неможливо, тому не слід допускати таких ситуацій. Інкапсуляція коду усередині класу приведе до того, що ніхто не зможе написати код, здатний "зламатися" при будь-якій зміні деталей реалізації окремих класів. Якщо все-таки треба щось змінити в класі, розширити його функціонала, то в цьому допоможуть спадкування й поліморфізм.

Успадкування

Класи рідко містять у собі абсолютно весь функціонал. Звичайно частина функціонала переноситься з інших класів. Цей процес називається успадкуванням. В Vіsual Basіc .NET абсолютно всі класи прямо або побічно (через ланцюжок інших класів) успадковуються від класу system.object. Успадкування дозволяє використовувати в дочірніх класах функціонал батьківського класу й, якщо буде потреба, доповнювати його. Поряд зі успадкуванням Vіsual Basіc .NET підтримує концепцію реалізації інтерфейсу. Інтерфейс являє собою опис набору функцій, які реалізують клас. Варто мати на увазі, що в Vіsual Basіc .NET кожний клас має рівно один базовий клас, і може реалізувати кілька інтерфейсів. При успадкуванні можна не просто додавати новий функціонал, але й змінювати існуючий. Для цього існує поліморфізм.

Поліморфізм

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]