Об’єкт у розумінні мови Pascal – це така структура, компонентами якої є взаємозв’язані дані різних типів і процедури та функції, що ці дані використовують. Компоненти-дані називаються полями об’єкта, а компоненти-процедури і функції називаються методами. Для позначення типу «об’єкт» в мові є службове слово OBJECT. Тип об’єкту описується способом, схожим на задання типу «запис».
TYPE
ІмяОбєкту=OBJECT
ПоляДаних;
Заголовки Методів;
END;
Конкретну змінну, оголошену типом ІмяОбєкту, прийнято називати екземпляром цього типу.
Розглянемо як приклад, об’єкт типу «студент». Нехай передбачені поля об’єкту: Name - ім’я студента, Date – дата народження, Rate – розмір стипендії.
З використанням типу «запис» це виглядало б так:
TStudent=RECORD
Name:String[30];
Date:String[10];
Rate:Real;
END;
Відповідно з використанням типу «об’єкт»
TStudent=OBJECT
Name:String[30];
Date:String[10];
Rate:Real;
END;
Змінну типу об’єкту (екземпляр об’єкту) описують так, як в Pascal описується будь-яка статична чи динамічна змінна, що вказує на розміщену в динамічній пам’яті змінну
var
Student:TStudent;
або так
TYPE
PStudent=^TStudent;
VAR
Stat_st:TStudent;
Dyn_St:PStudent;
Перед використанням змінної Dyn_St необхідно виділити для неї пам’ять з допомогою функції New.
Поля об’єкта
До поля об’єкта можна звернутися як до поля звичайного запису, за допомогою оператора WITH або використовуючи префікс з іменем об’єкта. Наприклад:
Student.Rate:=800;
WITH Student DO BEGIN
Name:=’Лящук Петро Павлович’;
Date:=’25.06.1995’;
END;
Причому до полів можна звертатися не тільки тоді, коли вони напряму описані в даному типі, а й тоді, коли вони успадковуються від батьківського (породжуючого) типу (як проходить успадковування, буде показано пізніше).
До полів об’єкту можна звертатися безпосередньо, але краще цього уникати. Принципи ООП вимагають, щоб поля об’єктів були, наскільки це можливо, виключені з вихідного коду. Надалі буде показано, що поля методу можна оголосити прихованими, обмеживши можливість доступу до них межами модуля, в яких вони визначені.
Найраціональнішим способом одержання доступу до полів об’єкту у Pascal-і є використання методів самого об’єкта, при цьому метод є процедурою чи функцією, описаною всередині об’єкту, яка дозволяє зв’язуватися з ним.