- •Об'єктно-орієнтоване
- •Класи і об'єкти
- •Дані об'єкту (змінні об'єкту,члени-дані)
- •Методи класу
- •Властивості
- •Приклад: Трикутник
- •class Point
- •Найважливіші принципи ООП
- •Абстракція даних
- •Інкапсуляція
- •class IntStack
- •Спадкоємство
- •class Plane
- •Поліморфізм
- •class Shape
- •Приклад
- •Розміщення класів в різних файлах
- •date.h
- •Обмеження доступу до даних і методів
- •Публічні (public) поля класу
- •Закриті (приватні)
- •Захищені поля класу
- •class Date
- •Посилання на себе
- •class ListItem
- •Константні методи
- •Коли виникає необхідність в константних методах
- •class IntArray
- •Мінливі (mutable) дані класу
- •class VeryComplexShape
- •Ініціалізація екземпляра
- •class Date
- •Конструктор
- •Ініціалізація даних екземпляра класу
- •Списки ініціалізації
- •class Foo
- •Деініціалізація екземпляра класу
- •class MyFile
- •Конструктор
- •Автоматично
- •Створення власного
- •Заборона
- •class CFile
Об'єктно-орієнтоване
програмування
Парадигма програмування, заснована на представленні наочної області у вигляді взаємозв'язаних абстрактних об'єктів і їх реалізацій
Класи і об'єкти
До ООП вводиться поняття Класу - призначеного для користувача типа даних, об'єднуючого дані і методи їх обробки
Об'єктом називається екземпляр
класу
Собака - це клас
Собака Жучка з 3 під'їзду - це об'єкт, представник або екземпляр класу «Собака»
class < Ім'я класу >
{
// поля класу (дані і методи)
};
Дані об'єкту (змінні об'єкту,члени-дані)
Члени-дані (data members) зберігають всю необхідну інформацію про об'єкт, формують його стан, характеристики і тому подібне
Зміна стану об'єкту або його характеристик пов'язана із зміною даних, що в ньому містяться
Методи класу
Клас може містити один або більш за методи, що дозволяють здійснювати маніпуляцію даними об'єкту
Метод об'єкту - програмний код, виконаний у вигляді процедури або функції, реагуючий на передачу об'єкту певного повідомлення
Виклик методу об'єкту може наводити до зміни його стану (значення членів-даних), а може і не наводити
Приклад 1: пошук і заміна тексту в документі
Приклад 2: перевірка правопису тексту документа
Властивості
Властивість - складник об'єкту, доступ до якої здійснюється програмістом як до змінної об'єкту
У деяких об'єктно-орієнтованих мовах програмування (наприклад, в C++ і Java) властивості, як елемент мови, відсутні
В цьому випадку в клас додають методи, за допомогою яких здійснюється доступ до необхідним змінним класу
Приклад: Трикутник
Властивості
Координати вершини A
Координати вершини B
Координати вершини CПлощаПериметр
Координати центру вписаного кола
Методи
Перемістити в заданому напряміМасштабуватиОбернути довкола заданої точки
class Point
{
public:
double x, y;
};
class Triangle
{
public:
double GetArea(); double GetPerimeter();
Point GetCenter();
void Move(double dx, double dy); void Scale(double sx, double sy);
void Rotate(Point center, double angle);
Point p0, p1, p2;
};
Найважливіші принципи ООП
Абстракція данихІнкапсуляціяСпадкоємствоПоліморфізм
Абстракція даних
Об'єкти уявляють неповну інформацію про реальні сутністі наочної області
Абстракція дозволяє оперувати з об'єктному на рівні, адекватному вирішуваному завданню
Високорівневі звернення до об'єкту можуть оброблятися за допомогою виклику функцій і методів низького рівня