Главная » Разработка для Android » Модификаторы доступа и инкапсуляция – JAVA ДЛЯ ANDROID

0

 

Ранее мы упоминали о том, что к членам класса применимы специальные правила видимости. Определения в большинстве блоков Java имеют статическую (лексическую) область видимости: они видимы только внутри данного блока и вложенных в него блоков. Но определения, сделанные в классе, могут быть видимы и вне блока. Java поддерживает публикацию членов класса, относящихся к верхнему уровню, – то есть его методов и полей – так, чтобы к ним имел доступ код из других классов. Этот доступ осуществляется при помощи модификаторов доступа. Модификаторы доступа – это ключевые слова, влияющие на видимость объявлений, к которым применяются эти модификаторы, для тех или иных элементов.

В языке Java существует три ключевых слова, которые выступают в качестве модификаторов доступа: public, protected и private. Вместе они поддерживают четыре уровня доступа. Понятно, что модификаторы доступа связаны с видимостью объявления из-за пределов класса, в котором это объявление содержится. Внутри же этого класса действуют нормальные правила обзора данных в блоке, независимо от конкретной модификации доступа.

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

Следующий по строгости уровень ограничений при доступе называется доступом к пакету или стандартным доступом. Доступ к объявлениям, к которым не применяется какой-либо модификатор доступа, выполняется по умолчанию, то есть они видимы только для других классов того же пакета. Доступ по умолчанию очень удобен для того, чтобы создавать состояние, совместно используемое несколькими объектами. Подобным образом действует объявление friend в С++.

Модификатор доступа protected предоставляет все те же права, что и доступ по умолчанию, но, кроме того, разрешает и доступ из любого подтипа. Любой класс, который дополняет другой класс с объявлениями protected, имеет доступ к этим объявлениям.

Наконец, public – это слабейший модификатор, разрешающий доступ откуда угодно.

Ниже приводится пример кода, позволяющий лучше познакомиться с модификаторами. Здесь мы видим четыре класса в двух разных пакетах, все они ссылаются на поля, объявленные в одном из классов – Accessible:

Источник: Android. Программирование на Java для нового поколения мобильных устройств

По теме:

  • Комментарии