Особливості понять “клас” і “об’єкт”
Щоб почати працювати з об’єктно-орієнтованим програмуванням, нам потрібно розібратися, що таке клас ООП і об’єкт. Важливо розуміти різницю між ними. Клас – це план для створення об’єкта. Він визначає атрибути і поведінку. Це схоже на інженерний креслення будинку. Об’єкт є екземпляром класу. Ось така між ними різниця. У наведеному нижче прикладі показано, яким чином оголошуються клас “TForml” і “Forml” на мові програмування Delphi:
type
TForml = class(TForm)
Buttonl: TButton;
procedure ButtonlClick(Sender: TObject);
end;
var
Forml: TForml;
Якщо ми хочемо змоделювати в нашій програмі, наприклад, автомобіль, то повинні визначити його атрибути: модель, паливо, марку, колір, його поведінку, а також так звані методи: запуск двигуна, гальмування, прискорення і так далі. Добре видно, що зазначені показники характерні не тільки для однієї марки або моделі транспортного засобу.
При об’єктно-орієнтованому підході ми намагаємося узагальнити наш об’єкт (машину), стверджуючи, що той, який ми збираємося змоделювати в нашій програмі, буде мати деяку кількість атрибутів і методів. Можуть бути й інші показники та характеристики транспортного засобу, але нам досить перерахованих, щоб зрозуміти, як працює клас в ООП.
Коли ми використовуємо ці дані, ми створюємо автомобіль з конкретними параметрами. Програмуючи один і той же об’єкт (машину), ми можемо взяти різні характеристики, як показано в таблиці нижче:
Об’єкт 1 | Об’єкт 2 |
модель: Ваз 2107 | модель: Ваз 2109 |
пальне: Бензин | пальне: Дизель |
колір: Червоний | колір: Зелений |
метод запуску двигуна: Start () | метод запуску двигуна: Start () |
метод гальмування: Break () | метод гальмування: Break () |
метод прискорення: Acceleration () | метод прискорення: Acceleration () |
Таким чином об’єктно-орієнтоване програмування дозволяє легко моделювати поведінку складної системи реального світу. З ООП дані і функції (атрибути та методи) об’єднуються в об’єкті. Це запобігає необхідності в будь-яких загальних або глобальних даних з ООП. Такий підхід є основною відмінністю об’єктно-орієнтованого та процедурного підходів.
Класи ООП складаються з елементів різних типів: