Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_lektsiy.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.14 Mб
Скачать

2. Взаємозв’язки об’єктів, класів. Поля та методи класів. Статичні, динамічні методи. Класи. Об’ява класу. Модель вказників. Методи. Події та вказники на методи.

Класом в ООП називається деяка структура, що поєднує у своєму складі змінні та процедури (функції). Змінні, залежно від свого призначення, називаються полями (field) і властивостями (property).

Процедури й функції називаються методами (methods). Будь-який метод працює тільки зі змінними, які визначені усередині класу та з параметрами, що передаються методу.

Складові класу (змінні та процедури) називаються членами класу (members).

Інакше кажучи, клас - це деяка абстракція. У ньому ніколи не зада­ються конкретні значення всіх полів і властивостей. Навіть методи в дея­ких випадках можуть не мати ні одного рядка програмного коду.

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

Інакше кажучи, об'єкт - це точно така ж структура, як і клас, але у якій визначені конкретні значення всіх його членів.

3. Три групи методів. Інкапсуляція. Спадковість. Поліформізм. Конструктори і деструктори.

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

Інкапсуляція – це об'єднання в єдиному об'єкті даних і кодів, які оперують із цими даними. У термінології ООП дані називаються членами даних (data members) об'єкту, а коди - об'єктними методами або функціями-членами (methods, member functions).

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

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

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

Простота й доступність принципу інкапсуляції ООП стимулює програмістів до розширення Бібліотеки Візуальних Компонентів, що входить до складу C++ Builder.

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

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

Похідний клас (нащадок) успадковує всі властивості, методи й події свого базового класу (батька) і всіх його попередників в ієрархії класів. При спадкуванні базовий клас обростає новими атрибутами й операціями.

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

Дружні функції дозволяють похідному класу дістати доступ до всіх членів даних зовнішніх  класів.

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

Говорять, що метод перевантажений, якщо він асоціюється з більш ніж однією однойменною функцією.

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

Перевантаження й перевизначення - це різні поняття.

Віртуальні методи використовуються для перевизначення функцій базового класу.

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