В программе представители класса — объекты объявляются в разделе var

В программе представители класса — объекты, объявляются в разделе var. Например, так:
var
student:TTPerson;
professor:TTPerson;

Примечание. В дальнейшем все основные понятия ООП рассматриваются на примере решения задачи составления списков преподавателей и студентов некоторой кафедры вуза. Здесь и далее приводятся фрагменты программы решения этой задачи.
Следует обратить особое внимание на то, что в Object Pascal объект — динамическая структура. Переменная-объект содержит не данные, а ссылку на данные объекта. Поэтому программист должен позаботиться о выделении памяти для этих данных и задании для них начальных значений.
Выделение памяти и инициализация объекта осуществляются с помощью специального метода класса — конструктора, которому обычно присваивают имя create (создать). Чтобы подчеркнуть особую роль и поведение конструктора, вместо ключевого слова procedure в заголовке конструктора используется слово constructor. Ниже приведено описание класса TTPerson, в состав которого введен конструктор.
TTPerson = class
private
fname:string[15];
faddress:string[35];
constructor create; // конструктор
public
procedure show; // метод
end;

Выделение памяти для данных объекта происходит присваиванием результата применения метода-конструктора к типу (классу) объекта. Например, после выполнения оператора
professor:=TTPerson.create;

выделяется необходимая память для данных объекта professor.
Помимо выделения памяти, конструктор, как отмечено выше, решает задачу присваивания полям объекта начальных значений, т. е. осуществляет инициализацию объекта. Ниже приведен пример реализации конструктора для объекта TTPerson.
constructor TTPerson.create;
begin
fname:=’’;
faddress:=’’;
end;

Реализация конструктора несколько необычна. Во-первых, в теле конструктора нет привычных операторов New, обеспечивающих выделение динамической памяти (всю необходимую работу по выделению памяти выполняет компилятор). Во-вторых, формально конструктор не возвращает значения, хотя в программе обращение к конструктору осуществляется как к методу-функции.
После объявления и инициализации объект можно использовать, например установить значение поля объекта. Доступ к полю объекта осуществляется указанием имени объекта и имени поля, которые отделяются друг от друга точкой. Хотя объект является ссылкой, однако правило доступа к данным с помощью ссылки, согласно которому после имени переменной, являющейся ссылкой, надо ставить значок ^, на объекты не распространяется. Например, для доступа к полю fname объекта professor вместо
professor^.fname следует писать professor.fname
Если в программе некоторый объект больше не используется, то можно освободить память, занимаемую полями этого объекта. Для выполнения этого действия используют метод-деструктор free. Например, чтобы освободить память, занимаемую полями объекта professor, достаточно записать
professor.free;

Введение в объектно-ориентированное программирование
Основные понятия ООП. Классы
Основные понятия ООП. Методы
Основные понятия ООП. Инкапсуляция и свойства объекта
Основные понятия ООП. Наследование
Основные понятия ООП. Области видимости в классах
Основные понятия ООП. Полиморфизм и виртуальные методы
Классы и объекты DELPHI

Понравилась статья? Поделиться с друзьями: