Рубрики
Без рубрики

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

В языке программирования Java мы можем видеть два основных типа модификаторов, которые являются модификаторами доступа a… С тегом java, ocpjp, 100daysofocpjp, день 1.

В языке программирования Java мы можем видеть два основных типа модификаторов, которые являются модификаторами доступа и модификаторами отсутствия доступа.

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

  • общественный
  • защищенный
  • по умолчанию
  • частный

Модификаторы, запрещающие доступ

  • статический
  • окончательный
  • абстрактный
  • синхронизированный
  • летучий
  • преходящий
  • родной
  • строгий режим

В этой статье я расскажу о модификаторах доступа.

Модификаторы доступа отвечают за определение области видимости, в которой видны такие элементы, как методы, переменные кода.

частный

  • Модификатор частного доступа доступен только из класса.
  • Модификатор частного доступа неприменим для классов и интерфейсов
  • Применимо к методам, свойствам и конструкторам
package temp;

class A{
    private int x;
}

class B{
    A a = new A();
    System.out.println(a.x);
}

Приведенный выше код содержит синтаксическую ошибку. Поскольку невозможно получить доступ к x из класса B, поскольку он изменен как private в классе A. Так x доступен только из класса A.

по умолчанию

  • Если разработчик явно не определил модификаторы доступа, этот участник имеет модификатор доступа по умолчанию.
  • модификатор доступа по умолчанию виден всем классам в одном пакете. Так называемый пакет-частный
package temp;

class A{
    int x;
}

class B{
    A a = new A();
    System.out.println(a.x);
}

Теперь в приведенном выше примере можно получить доступ к x из класса B. Поскольку x изменен по умолчанию и A и B оба класса находятся в одном пакете.

package temp;

class A{
    int x;
}


package temp2;

class C extends B{
    void m(){
        System.out.println(x);
    }
}

В приведенном выше коде даже класс C имеет расширенный класс B , внутри класса C не может получить доступ к x . Потому что x изменен по умолчанию, и класс пытается получить доступ к x из другого пакета.

Защищенный

  • модификатор защищенного доступа виден для того же пакета
  • модификатор защищенного доступа также виден другим пакетам, но только через подкласс
  • применимо для конструктора, метода и свойства
package temp;

class A{
    protected int x;
}


package temp2;

class C extends B{
    void m(){
        System.out.println(x);
    }
}

В приведенном выше примере из C класса пакета temp2 можно получить доступ к x , который определен в A класс в упаковке температура потому что x имеет модификатор защищенного доступа. Кроме того, x будет доступен для дочерних классов C.

общественный

  • доступный везде
  • применимо к классам, интерфейсам, свойствам, методам, конструкторам
package temp;

class A{
    public int x;
}


package temp;

class D{
    void method(){
        A a = new A();
        System.out.println(a.x);
    }
}

В приведенном выше коде x переменная класса A доступен для всех частей кода. Таким образом, можно получить доступ к x из класса D в пакете temp2 .

Сравнение

общественный

  • внутри класса: да
  • внутри упаковки: да
  • внешний пакет путем наследования: да
  • вне упаковки: да

защищенный

  • внутри класса: да
  • внутри упаковки: да
  • внешний пакет путем наследования: да
  • вне упаковки: нет

по умолчанию

  • внутри класса: да
  • внутри упаковки: да
  • внешний пакет путем наследования: нет
  • вне упаковки: нет

частный

  • внутри класса: да
  • внутри упаковки: нет
  • внешний пакет путем наследования: нет
  • вне упаковки: нет

Оригинал: “https://dev.to/buddhikac96/access-modifiers-3647”