Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OTP_labs-NEW2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
787.97 Кб
Скачать

9.1 Теоретичні відомості

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

Об’єкт – змінна, типом якої є клас. Клас можна розглядати з двох позицій. По-перше, з позиції предметної області ­­клас відповідає деякому типовому об’єкту цієї області. По-друге, з позиції технології програмування, клас є програмною структурою, що має наступні властивості:

  1. Абстракція даних – клас відображає ті властивості елементної області, які необхідні для вирішення поставленої задачі. Клас описує абстрактне поняття, наприклад, повідомлення. Клас призначено для опису усіх повідомлень, можливих у цій задачі. Коли буде створена конкретна змінна-об’єкт, змінна перетвориться з абстрактної у конкретну зі своїми властивостями.

  2. Інкапсуляція даних – механізм, який дозволяє об`єднати поля даних і код програми, захищати їх від НСД. Частину даних та методів можна приховати від зовнішнього використання. Доступ до цих полів можливий тільки для методів даного класу. Зазвичай всі елементи роблять закритими, відкритими залишають інтерфейси, методи, за допомогою яких можна керувати об’єктом.

  3. Наслідування – процес, згідно якого один клас може наслідувати властивості іншого. За допомогою наслідування можна створювати ієрархії класів. Кожний клас описує предметну область на своєму рівні абстракції, а більш конкретні класи успадковують признаки більш абстрактних.

Переваги ООП:

  1. Код програми стає більш простим, а структура більш зрозумілою.

  2. Модернізація програми стає значно простішою.

  3. Проектування програм спрощується.

  4. Організація підпрограм у вигляді класів полегшує їх повторне використання.

Недоліки ООП:

  1. Нижче швидкість роботи, збільшено розмір програми.

  2. Додатковий час на реалізацію класів.

Клас в С++ ­клас це програмна структура, яку використовують при створенні об’єктів. Синтаксис об’явлення класу є подібним до об’явлення структури, але замість ключового слова struct використовується class. Клас може містити змінні, які зберігають інформацію про внутрішній стан об’єкта. Також і функції, які оперують цими даними і реалізують властивості об’єктів – так звані методи.

Приклад:

Computer:

class Computer {

enum {CPUTYPE,CPUFREQ,RAMVOL,HDDVOL};

Computer();

unsigned int getValue(int type);

unsigned int upgrade(int type,unsigned int newValue);

unsigned int cputype;

unsigned int cpufreq;

unsigned int ramvolume;

unsigned int hddvolume; };

Об’єкт класу Computer характеризується такими властивостями як тип процесору та частота його роботи, обсягами оперативної пам’яті та пам’яті на НЖМД. Об’єкт буде мати наступні методи: getValue – для отримання характеристик комп’ютера, upgrade – для їх зміни, Computer – конструктор об’єкта.

Реалізація методів може знаходитись всередині класу, так і ззовні. Приклад зовнішньої реалізації:

unsigned int Computer::getValue(int type){

switch (type){

case CPUTYPE: return cputype;

case CPUFREQ: return cpufreq;

case RAMVOL : return ramvolume;

case HDDVOL : return hddvolume;}

return -1;

};

Конструктори і деструктори. Створення та видалення об’єктів здійснюється за допомогою спеціальних методів – конструкторів та деструкторів. Конструктор – функція, яка викликається під час створення об’єкта і призначена для реалізації його властивостей. Ім’я конструктора має співпадати з іменем класу. Деструктор – функція, яка викликається під час знищення об’єкта для звільнення ресурсів, отриманих об’єктом. Ім’я деструктора складається із символа ~ (тільда) та імені класу. Клас може мати декілька конструкторів і лише один деструктор. При об’явлені конструкторів і деструкторів не вказують тип результату, крім того у деструктора має бути пустим список аргументів.

Конструктори бувають двох видів:

1) ініціалізації – викликаються при явному створенні нового об’єкта. Серед них розрізняють конструктори без аргументів, конструктори за замовчанням, конструктори з аргументами.

2) копіювання – викликаються при неявному створенні об’єкта. Це відбувається при передачі об’єкта як аргументу за значенням в функцію.

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