- •Міністерство освіти Та науки україни Запорізький національний технічний університет
- •Методичні вказівки
- •Загальні положення
- •1 Типи даних та арифметичні вирази
- •1.1 Теоретичні відомості
- •1.2 Порядок виконання роботи
- •1.3 Приклад
- •1.5 Завдання на лабораторну роботу
- •1.6 Контрольні запитання
- •2 Умовні оператори
- •2.1 Теоретичні відомості
- •2.2 Порядок виконання роботи
- •2.3 Приклад
- •2.5 Завдання на лабораторну роботу
- •2.6 Контрольні запитання
- •3 Оператори циклів
- •3.1 Теоретичні відомості
- •3.2 Порядок виконання роботи
- •3.3 Приклад
- •3.5 Завдання на лабораторну роботу
- •3.6 Контрольні запитання
- •4 Масиви
- •4.1 Теоретичні відомості
- •4.2 Порядок виконання роботи
- •4.3 Приклад
- •4.5 Завдання на лабораторну роботу
- •4.6 Контрольні запитання
- •5 Робота з динамічною пам’яттю
- •5.1 Теоретичні відомості
- •5.2 Порядок виконання роботи
- •5.3 Приклад
- •5.5 Завдання на лабораторну роботу
- •5.6 Контрольні запитання
- •6 Функції. Створення та використання
- •6.1 Теоретичні відомості
- •6.2 Порядок виконання роботи
- •6.3 Приклад
- •6.5 Завдання на лабораторну роботу
- •6.6 Контрольні запитання
- •7 Абстрактні типи даних
- •7.1 Теоретичні відомості
- •7.2 Порядок виконання роботи
- •7.3 Приклад
- •7.5 Завдання на лабораторну роботу
- •7.6 Контрольні запитання
- •8 Пошук та сортування
- •8.1 Теоретичні відомості
- •8.2 Порядок виконання роботи
- •8.3 Приклад
- •8.5 Завдання на лабораторну роботу
- •8.6 Контрольні запитання
- •9 Основи ооп
- •9.1 Теоретичні відомості
- •9.2 Порядок виконання роботи
- •9.3 Приклад
- •9.5 Завдання на лабораторну роботу
- •9.6 Контрольні запитання
- •10 Створення похідних класів
- •10.1 Теоретичні відомості
- •10.2 Порядок виконання роботи
- •10.3 Приклад
- •10.5 Завдання на лабораторну роботу
- •10.6 Контрольні запитання
- •11 Основи Об’єктно орієнтованого проектування
- •11.1 Теоретичні відомості
- •11.2 Порядок виконання роботи
- •11.4 Завдання на лабораторну роботу
- •11.5 Контрольні запитання
- •12 СТворення графічного інтерфейсу користувача
- •12.1 Порядок виконання роботи
- •12.3 Завдання на лабораторну роботу
- •12.4 Контрольні запитання
- •Література
- •69039 М. Запоріжжя, знту, друкарня, вул Жуковського, 64
9.1 Теоретичні відомості
Об'єктно-орієнтоване програмування (ООП) це принцип програмування, згідно якого програма являє собою алгоритми, які описують взаємодію груп пов’язаних між собою об’єктів.
Об’єкт – змінна, типом якої є клас. Клас можна розглядати з двох позицій. По-перше, з позиції предметної області клас відповідає деякому типовому об’єкту цієї області. По-друге, з позиції технології програмування, клас є програмною структурою, що має наступні властивості:
Абстракція даних – клас відображає ті властивості елементної області, які необхідні для вирішення поставленої задачі. Клас описує абстрактне поняття, наприклад, повідомлення. Клас призначено для опису усіх повідомлень, можливих у цій задачі. Коли буде створена конкретна змінна-об’єкт, змінна перетвориться з абстрактної у конкретну зі своїми властивостями.
Інкапсуляція даних – механізм, який дозволяє об`єднати поля даних і код програми, захищати їх від НСД. Частину даних та методів можна приховати від зовнішнього використання. Доступ до цих полів можливий тільки для методів даного класу. Зазвичай всі елементи роблять закритими, відкритими залишають інтерфейси, методи, за допомогою яких можна керувати об’єктом.
Наслідування – процес, згідно якого один клас може наслідувати властивості іншого. За допомогою наслідування можна створювати ієрархії класів. Кожний клас описує предметну область на своєму рівні абстракції, а більш конкретні класи успадковують признаки більш абстрактних.
Переваги ООП:
Код програми стає більш простим, а структура більш зрозумілою.
Модернізація програми стає значно простішою.
Проектування програм спрощується.
Організація підпрограм у вигляді класів полегшує їх повторне використання.
Недоліки ООП:
Нижче швидкість роботи, збільшено розмір програми.
Додатковий час на реалізацію класів.
Клас в С++ клас це програмна структура, яку використовують при створенні об’єктів. Синтаксис об’явлення класу є подібним до об’явлення структури, але замість ключового слова 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) копіювання – викликаються при неявному створенні об’єкта. Це відбувається при передачі об’єкта як аргументу за значенням в функцію.
