Имеет смысл определять объекты в модуле посредством описаний
типа объекта в интерфейсной части модуля, а тела процедур и мето-
ды объекта - в секции реализации. Для определения объекта в моду-
ле не требуется никаких специальных соглашений.
Примечание: Экспортируемый - означает "определенный в
интерфейсной части модуля".
Модули могут иметь свои собственные приватные (частные) оп-
ределения типов объектов внутри выполняемой секции, и эти типы
подвержены тем же ограничениям, как и всякие другие типы, опреде-
ленные в секции реализации. Типы объектов, определенные в интер-
фейсной части модуля, могут иметь дочерние типы объектов, опреде-
ленные в секции реализации модуля. В том случае, когда модуль B
использует модуль A, модуль B также может определять дочерние ти-
пы любого типа объекта, экспортируемого модулем A.
Описанные ранее типы объектов и методы можно определить в
модуле, как показано в программе WORKERS.PAS на дистрибутивном
диске. Чтобы использовать типы объектов и методы, определенные в
модуле Workers, вы можете просто использовать этот модуль в своей
программе и описать экземпляр типа THourly в секции переменных
программы:
program HourPrt;
uses WinCrt, Workers;
var
AnHourly: THourly;
.
.
.
Для создания и вывода фамилии pабочего-почасовика, его долж-
ности и pазмеpа выплаты, пpедставленной пеpеменной AnHourly, вы
просто вызываете методы AnHourly, используя следующий синтаксис:
AnHourlye.Init('Sara Adams', 'Account manager', 1400);
{ записывает в экземпляp THourly }
{ данные для Саpы Адамс: фамилию, }
{ должность и pазмеp выплаты. }
AnHourly.Show;
Примечание: Объектами могут быть также типизированные
константы.
Объекты, будучи очень схожими с записями, могут использо-
ваться внутри оператора with. В этом случае указание имени объек-
та, являющегося собственником методов, не является необходимым:
with AnHourly do
begin
Init('Sara Adams', 'Account manager', 1400);
Show;
end;
Как и в случаях с записями, объекты могут передаваться в ка-
честве параметра процедуре и (как вы увидите позднее) могут раз-
мещаться в динамически распределяемой памяти.