Методы в Object Pascal. Семенов Н.М. - 12 стр.

UptoLike

Составители: 

12
Result := FTitle;
end;
В данном случае метод-функция GetTitle возвращает значение, хранящееся в поле FTitle
активного объекта.
1.5.4 Реализация конструкторов
Конструкторы - это специальные методы, в задачи которых входит не только выполнение
операторов, содержащихся в их теле, но в первую очередь создание нового экземпляра объекта.
Пользователю не надо заботиться о деталях того, как именно при исполнении программы в
памяти будет создан новый представитель класса. К тому моменту, когда выполнение
программы доходит до первого begin главного блока begin-end конструктора, представитель
класса уже создан автоматически. Назначение кода внутри конструктора - инициализировать
только что созданный экземпляр объекта.
Общий синтаксис реализации конструктора следующий:
constructor ИмяКласса.Имя(<Параметры>);
<Необязательный блок объявлений>
begin
<Исполняемые операторы>
end;
Рассмотрим пример:
constructor TBook.Create (ATitle : String);
begin
inherited Create;
FTitle ;= ATitle;
FAuthor := Nil;
end;
Реализация конструктора, как и реализация любых других методов, должна располагаться
в разделе implementation модуля, либо в программе или библиотеке, до основного блока begin-
end.
Основная часть реализации конструктора подчиняется тем же правилам, что и реализация
самостоятельных процедур. Хотя при использовании конструктора от него получается значение
(то есть он используется как функция), его реализация больше похожа на реализацию
процедуры. Например, внутри конструктора отсутствует явное присваивание возвращаемого
значения. Такое возможно, поскольку конструктор всегда возвращает ссылку на вновь
созданный экземпляр объекта, в котором он определен, поэтому нет нужды специально
присваивать какие-либо значения.
Поскольку внутри конструктора, как и внутри других методов, имеется доступ ко всем
полям только что созданного объекта, можно ( и следует) инициализировать поля нужными
значениями.
После того, как выполнение конструктора заканчивается, новый представитель класса
считается полностью инициализированным и действительным, если только конструктор не
завершил работу вызовом встроенной функции Fail, знакомство с которой еще только предстоит.