|
||||
|
28. Компоненты и область действия Область действия идентификатора компоненты простирается за пределы объектного типа. Более того, область действия идентификатора компонента простирается сквозь блоки процедур, функций, конструкторов и деструкторов, которые реализуют методы объектного типа и его наследников. Исходя из этих соображений, идентификатор компоненты должен быть уникальным внутри объектного типа и внутри всех его наследников, а также внутри всех его методов. В описании объектного типа заголовок метода может задавать параметры описываемого объектного типа, даже если описание еще не полное. Рассмотрим следующую схему описания типа, содержащего компоненты всех допустимых областей действия: Type <имя типа> = Object [(<имя типа родителя>)] Private <частные описания полей и методов> Protected <защищенные описания полей и методов> Public <общедоступные описания полей и методов> end; Поля и методы, описанные в разделе Private, могут быть использованы только внутри модуля, содержащего их описания и нигде более. Защищенные поля и методы, то есть описанные в разделе Protected, видимы в модуле, где определяется тип, и потомкам данного типа. Поля и методы из раздела Public не имеют ограничений на использование и могут быть задействованы в любом месте программы, которое имеет доступ к объекту данного типа. Область действия идентификатора компонента, описанного в части private описания типа, ограничивается модулем (программой), которая содержит описание объектного типа. Другими словами, частные (private) компоненты-идентификаторы действуют, как обычные общедоступные идентификаторы в рамках модуля, который содержит описание объектного типа, а вне модуля любые частные компоненты и идентификаторы неизвестны и недоступны. Поместив в один модуль связанные типы объектов, можно сделать так, что эти объекты смогут обращаться к частным компонентам друг друга, и эти частные компоненты будут неизвестны другим модулям. |
|
||
Главная | Контакты | Нашёл ошибку | Прислать материал | Добавить в избранное |
||||
|