Области видимости (доступности)

При описании класса важно соблюсти разумный компромисс. С одной стороны, требуется скрыть ряд внутренних методов и полей, одни из которых бесполезны пользователю класса и только усложняют его интерфейс, а доступ к другим полям нужно организовать через систему проверок или свойств (инкапсуляция). С другой стороны, если слишком ограничивать возможного пользователя класса, то данный класс может стать ему неинтересен. В языке Object Pascal применяют следующие виды доступа к полям, методам и свойствам:

Public (общие). Поля, методы и свойства из этой секции не имеют ограничений на видимость. Они доступны из других функций и методов объектов как в данном модуле, так и в других модулях, ссылающихся на него.

Protected (защищенные). Поля, методы и свойства этой секции доступны всем функциям и методом данного модуля. В других модулях доступны только в классах, порожденных от данного класса.

Private (личные). Наибольшее ограничение доступности. Поля, методы и свойства из этой секции доступны только в данном модуле и недоступны из других модулей.

Кроме основных трех областей видимости существуют еще две:

Published (опубликованные). Аналогично public, только свойства из данной секции доступны еще и из среды визуального программирования (Object Inspector).

Automated. Появилась в последних версиях Delphi. Используется для создания объектов Автоматизации (COM-технологии).

В классе-потомке можно переопределить область видимость метода, не понижая ее. type T1 = class private fNumber: integer; protected property Number:integer read fNumber; end; T2 = class (T1) published property Number; end; Здесь переводом свойства Number в группу опубликованных свойств, была повышена его видимость. Повысить видимость элементов секции private нельзя.

Поля и методы объектов

поля — это обычные переменные, инкапсулированные внутри объекта

Методы

Это одна из самых главных частей объекта. Методы обеспечивают своеобразный интерфейс между внутренней (инкапсулированной) частью объекта и внешней (доступной вне объекта).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: