Класи ООП. Об’єктно-орієнтоване програмування

Особливості понять “клас” і “об’єкт”

Щоб почати працювати з об’єктно-орієнтованим програмуванням, нам потрібно розібратися, що таке клас ООП і об’єкт. Важливо розуміти різницю між ними. Клас – це план для створення об’єкта. Він визначає атрибути і поведінку. Це схоже на інженерний креслення будинку. Об’єкт є екземпляром класу. Ось така між ними різниця. У наведеному нижче прикладі показано, яким чином оголошуються клас “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 ()

Таким чином об’єктно-орієнтоване програмування дозволяє легко моделювати поведінку складної системи реального світу. З ООП дані і функції (атрибути та методи) об’єднуються в об’єкті. Це запобігає необхідності в будь-яких загальних або глобальних даних з ООП. Такий підхід є основною відмінністю об’єктно-орієнтованого та процедурного підходів.

Класи ООП складаються з елементів різних типів:

  • Поля даних: зберігають стан класу з допомогою змінних і структур.
  • Методи: підпрограми для маніпулювання зазначеними даними.
  • Деякі мови допускають третій тип – властивості. Це щось середнє між першими двома.