Модификаторы доступа в Java

Программирование Учебник по Java Модификаторы доступа в Java

Помечено: 

  • В этой теме 0 ответов, 1 участник, последнее обновление 1 месяц назад сделано Васильев Владимир Сергеевич.
Просмотр 0 веток ответов
  • Автор
    Сообщения
    • #6189
      @admin

      Модификаторы доступа — это ключевые слова (зарезервированные идентификаторы), которые определяют доступность класса или его членов.

      В языке Java предусмотрены следующие модификаторы доступа:

      • public — общедоступный;
      • protected — защищенный;
      • private — закрытый;
      • default — пакетный.

      Для членов класса (полей и методов) разрешено использование всех указанных выше модификаторов.

      Элементы помеченные как public имеют наибольшую видимость и доступны другим классам отовсюду

      public class MyClass {
        
        public String myField;
        
        public void myMethod(){
         
        }
        
      }

      Следует отметить, что поля, редко обозначают как общедоступные, чаще как закрытые и доступ к ним осуществляется в этом случае через public-методы

      Protected-члены доступны в классе в котором они определены и в подклассах. Так же данные члены доступны другим классам, находящимся в этом же пакете

      public class MyClass {
        protected String myField;
        protected void myMethod(){
        }
      }

      Private-члены могут использоваться только тем классом в котором они определены, это наиболее закрытая область видимости

      public class MyClass {
        private String myField;
        private void myMethod(){
         
        }
      }

      Отдельно следует сказать о пакетном уровне доступа (default). Отметим, что ключевое слово default в отличие от остальных модификаторов не пишется. Элемент считается с пакетным уровнем доступа, если не указан ни один из модификаторов доступа

      public class MyClass {
       
        String myField;
        
        void myMethod(){
         
        }
      }

      В данном случае элемент доступен классу в котором объявлен и другим классам в том же пакете, но не доступен классам, в том числе и наследникам, находящимся в других пакетах. Таким образом данный уровень видимости является более строгим чем protected.

      Для классов и интерфейсов верхнего уровня, т.е. не вложенных (внутренних), применимы только общедоступный (public) и пакетный (default) модификаторы. Если класс объявлен как public, то к нему можно получить доступ отовсюду.

      Если же модификатор доступа не указан, то класс имеет пакетную область видимости и доступ к нему имеют только классы из того же пакета

      class MyClass {
       
      }

      Отметим, что внутренние классы как статические так и нестатические могут иметь любой модификатор доступа (public, protected, private) или не иметь ни одного (пакетный доступ).

Просмотр 0 веток ответов
  • Для ответа в этой теме необходимо авторизоваться.