- •Лекція 4 – Сучасні напрямки розвитку програмного забезпечення
- •1. Поняття алгоритму та модульного програмування
- •2. Узагальнення особливостей подання даних засобами популярних мов програмування високого рівня
- •3. Характеристика особливостей структурного програмування
- •Розрізняють два класичних види підпрограм у межах структурного програмування: процедури і функції. Види підпрограм
- •Структура підпрограми включає:
- •Функції
- •Процедури
- •4. Характеристика особливостей подійо-орієнтованого програмування
- •5. Характеристика особливостей та принципів об’єктно-орієнтованого програмування
- •6. Аналіз принципів візуального програмування
- •7. Контроль якості програмного забезпечення
5. Характеристика особливостей та принципів об’єктно-орієнтованого програмування
У середині 80-х років ХХ століття в програмуванні виник новий напрямок, який базується на використанні поняття “об’єкту”.
Реальні об’єкти навколишнього світу мають три базові характеристики.
П
ід
ними розуміють такі
базові
характеристики об’єкту
Набір властивостей |
Можливість різними методами змінювати свої властивості |
Реакція на події, що виникають як в навколишньому світі, так і в середині самого об’єкту |
Саме в такому вигляді і в мовах програмування реалізовано поняття об’єкта, яке визначається відповідними характеристиками
Сукупністю властивостей (структур даних, характерних для цього об’єкта) |
Методами їх обробки (підпрограми зміни властивостей) |
Подіями, на які даний об’єкт може реагувати і які призводять, як правило, до зміни властивостей об’єкта |
Поява можливостей створення об’єктів у програмних продуктах якісно вплинуло на продуктивність праці програмістів. До переваг об’єктно-орієнтованого напрямку програмування можна віднести такі основні його характеристики:
при значному збільшенні об’єму вихідного коду сучасних програмних продуктів вдалося добитися забезпечення високої надійності програмних засобів;
забезпечується можливість повторного використання раніше створених об’єктів у різних задачах.
Об’єкти можуть мати ідентичну структуру і відрізнятися лише значеннями властивостей. У таких випадках у програмі ініціалізується новий тип, який базується на єдиній структурі об’єкта. Він називається класом, а кожний конкретний об’єкт, що має структуру цього класу, носить назву екземпляру класу. В мовах програмування С++ і Паскаль для опису класу використовують ключове слово class.
При визначенні підпрограми, яка належать до конкретного класу, і визначенні методів класу заголовок підпрограми перед назвою самої підпрограми у явному вигляді включає ідентифікацію класу. Назву класу від назви метода відділяють спеціальним символом (це крапка у мові Паскаль та дві двокрапки в мові програмування С++). Наведемо приклади опису класів засобами алгоритмічних мов програмування Паскаль і С++.
Паскаль:
Class… TmyClass
Procedure TMyClass.Initialize
Begin
……
End;
C++:
Class TmyClass
Void TmyClass : : Initialize()
{
……….
};
Загалом під класом розуміють визначений тип даних. На його основі можна описувати конкретні об’єкти (екземпляри класу). Для прикладу наведемо особливості синтаксису при описуванні екземплярів класу засобами мов програмування Паскаль і С++ :
Паскаль : var C1,C2 : TmyClass;
Сі ++ : TmyClass C1,C2.
Об’єднання даних з методом в одному типі (класі) називається інкапсуляцією.
Важливою характеристикою класу є можливість створення на його основі нових класів з наслідуванням усіх його властивостей і методів із додаванням власних властивостей. Клас, який не має попередника, називається базовим. Наприклад, клас “тварина” має властивості “назва”, “розмір” і методи “розмножуватися”. Створений на його основі клас “качка” наслідує усі властивості і методи класу “тварина”, до яких додатково додається властивість “окрас” і метод “пити”.
Наслідування властивостей класу є одним із сучасних методів автоматизації у створенні програмних продуктів. Наслідування дозволяє створювати нові класи, повторно використовуючи вже готовий початковий програмний код, не витрачаючи часу на його переписування.
