1. 3. Базові поняття та терміни ооп
ООП – це методологія (парадигма) програмування, яка ґрунтується на представленні програми у вигляді структурності об’єктів, кожен з яких є реалізацією певного класу, а класи утворюють ієрархію на принципах наслідування.
В даному означенні можна виділити 3 частини:
ООП використовує в якості елементів конструкції об’єктів, а не алгоритми;
Кожен об’єкт є реалізацією класу;
Класи організовані ієрархічно.
Означення. Об’єктно-орієнтована парадигма – новий підхід до розробки програмного забезпечення.
Фундаментальна концепція Об’єктно-орієнтована парадигма полягає в передачі повідомлень об’єктам. Для цього необхідно, щоб об’єкти визначалися разом з повідомленнями, на які вони будуть реагувати, на відміну від процедурного програмування, де спочатку визначаються структури даних, які потім передаються в процедури як параметри.
Існує 4 компоненти об’єктно-орієнтованої парадигми:
Об’єкт;
Повідомлення ;
Клас;
Метод.
Об’єкт – це абстрактне поняття, що включає інформацію про стан і чітко визначену множину протоколу доступу (повідомлення, які опрацьовують об’єкт). Об’єкт об’єднує всобі дані і методи, які працюють з цими даними.
Повідомлення – це спеціальний символ, ідентифікатор або ключове слово з або без параметрів, яке показує дію, що використовується об’єктом. При заданні повідомлення вказується ім’я об’єкта, якому воно передається.
Метод – це функція (ряд виразів), що знаходиться всередині об’єкта і може змінювати деякі властивості цього об’єкта. Метод визначає реакцію об’єкта на повідомлення.
Приклад.
R1.roots();
R1 → roots(); - динамічний об’єкт (за допомогою вказівника)
T
Виклики методів
C1.move (0,0); - перемістити об’єкт у задану точку
R1.changecolor (Red); - змінити колір об’єкта на червоний
Клас - це група об’єктів, що мають спільні властивості. Класи організовуються ієрархічно, причому підкласи наслідують властивості класів, що їх породили.
Приклад. Клас, який моделює прямокутник
class rectangle {
public : rectangle (double x1, double y1, double x2, double y2)
void setcolor (int col);
void setcoord (double x1, double y1);
void draw;
void erase;
void move (double dx, double dy);
protected :
double x1, y1, x2, y2;
int col;
}
Отже, об’єкти належать до певних класів; Об’єкти опрацьовують повідомлення відповідно до методів, які задані в описі класу. Об’єкти також мають змінні стану, які визначені в описі класу. Ці змінні можуть мати однакові або різні значення у різних екземплярах об’єктів даного класу.
Базові концепції ООП
ООП Мова повинна володіти властивостями абстракції, інкапсуляції, наслідування і поліморфізму.
1. Абстракція – процес мисленого відділення несуттєвих характеристик об’єктів реального світу та виділення тих властивостей, які є важливими для розв’язання даної задачі.
2. Інкапсуляція – поєднання в одному об’єкті даних та методів, що мають доcтуп до цих даних. Передбачає захист даних від стороннього втручання та дозволяє цілком змінити реалізацію об’єкта. В ООП одиниця інкапсуляції – об’єкт.
3. Наслідування (успадкування) – полягає у передачі властивостей (атрибутів) від основного (базового, батьківського) класу до іншого (похідного). Ілюстрація цього – класи в біології..
4. Поліморфізм – здатність різних об’єктів по-різному реагувати на одне і те ж повідомлення. Тобто, конкретна форма повідомлення визначається і зв’язується з об’єктом під час виконання програми.
1.4. Етапи виконання програм на мові С++
Вихідний текст модуля 1
.cpp
Вихідний текст модуля N
.cpp
. . .
Препроцесор
Препроцесор
. . .
Повний текст модуля 1
.cpp
Повний текст модуля N
.cpp
. . .
Компілятор
Компілятор
. . .
Об’єктний код
модуля 1
.cpp
Виконуваний файл .ехе
. . .
Компонувальник
Об’єктний код
модуля N
.cpp