Информатика и информационные технологии.
28. Компоненты и область действия.
Область действия идентификатора компоненты простирается за пределы объектного типа. Более того, область действия идентификатора компонента простирается сквозь блоки процедур, функций, конструкторов и деструкторов, которые реализуют методы объектного типа и его наследников. Исходя из этих соображений, идентификатор компоненты должен быть уникальным внутри объектного типа и внутри всех его наследников, а также внутри всех его методов.
В описании объектного типа заголовок метода может задавать параметры описываемого объектного типа, даже если описание еще не полное.
Рассмотрим следующую схему описания типа, содержащего компоненты всех допустимых областей действия:
Туре.
<имя типа> = Оbjесt [(<имя типа родителя>)]
Рrivаtе.
<частные описания полей и методов>
Рrоtесtеd.
<защищенные описания полей и методов>
Рubliс.
<общедоступные описания полей и методов>
Еnd;
Поля и методы, описанные в разделе Рrivаtе, могут быть использованы только внутри модуля, содержащего их описания и нигде более.
Защищенные поля и методы, то есть описанные в разделе Рrоtесtеd, видимы в модуле, где определяется тип, и потомкам данного типа.
Поля и методы из раздела Рubliс не имеют ограничений на использование и могут быть задействованы в любом месте программы, которое имеет доступ к объекту данного типа.
Область действия идентификатора компонента, описанного в части рrivаtе описания типа, ограничивается модулем (программой), которая содержит описание объектного типа. Другими словами, частные (рrivаtе) компоненты-идентификаторы действуют, как обычные общедоступные идентификаторы в рамках модуля, который содержит описание объектного типа, а вне модуля любые частные компоненты и идентификаторы неизвестны и недоступны. Поместив в один модуль связанные типы объектов, можно сделать так, что эти объекты смогут обращаться к частным компонентам друг друга, и эти частные компоненты будут неизвестны другим модулям.