Введение в модификаторы доступа в Java

Как все мы знаем, Java является одним из лучших языков программирования в мире. Миллиарды устройств используют его в течение последних двух десятилетий. Java - это быстрый, надежный, безопасный и многоплатформенный язык. Java работает на любом устройстве, если у этого устройства есть Java Runtime (JRE), что делает его мультиплатформенным, быстрым и надежным языком. Модификатор доступа является свойством Java, что делает его безопасным для всей мультиплатформенности. Java обеспечивает безопасность на уровне класса (во время инкапсуляции) для программиста с помощью свойства модификатора доступа. Согласно книге, Class является проектом для создания объекта в Java, что делает его «строительным блоком» для программы, поскольку Java является объектно-ориентированным языком. Модификатор доступа определяет, как любой класс может обращаться к данному классу и его полям, конструкторам и методам внутри, а также к различным пакетам. Класс, поля, конструкторы и методы могут иметь один из четырех различных модификаторов доступа Java.

  • Частный
  • общественного
  • защищенный
  • По умолчанию - ключевое слово не требуется.

Различные модификаторы доступа в Java

Следующая таблица суммирует, как мы можем применить модификаторы доступа Java к программе:

МодификаторыУчебный класспакетыПодгруппаМир
ЧастныйYNNN
общественногоYYYY
защищенныйYYYN
По умолчаниюYYNN

Мы рассмотрим каждый модификатор доступа Java в следующих разделах.

1) по умолчанию

Когда любой класс, члены данных и переменная объявляются без записи с модификатором доступа, тогда устанавливается модификатор доступа «по умолчанию». Модификатор доступа по умолчанию означает, что код внутри любого класса может получить доступ ко всей программе в пределах одного и того же пакета.

  • Этот модификатор доступа работает только в одном пакете.
  • Иногда модификатор доступа «по умолчанию» также называют модификатором доступа к пакету, поскольку он доступен только в одном пакете.
  • Подклассы не могут обращаться к методам, членам данных и переменным (полям) в суперклассе, если эти методы, члены данных и переменные (поля) помечены модификатором доступа по умолчанию в классе, если только эти подклассы не находятся в том же пакете, что и суперкласс.

Пример № 1:

//Java program to show the default modifier.
package Test;
//Where Class eduCBA is having Default access modifier as no access modifier is specified here
class eduCBA
(
void display ()
(
System.out.println("Hello World!");
)
)

Выход:

Привет, мир!

Пример № 2:

//Java program to show error while using class from different package with default modifier
package test2;
import test.*;
//This class check is having default access modifier
class Check
(
public static void main(String args())
(
//accessing class eduCBA from package test
eduCBA obj = new eduCBA();
obj.display();
)
)

Выход:

Ошибка времени компиляции.

2) Защищено

Синтаксис 'protected' используется пользователями, когда они хотят использовать этот модификатор доступа.

  • Этот модификатор доступа доступен только в пределах одного и того же пакета или одних и тех же подклассов в разных классах (но пользователи должны импортировать тот пакет, где он был указан).
  • Пользователь не может пометить класс и интерфейсы с помощью «защищенного» модификатора доступа. Однако методы и поля могут быть объявлены как защищенные, если методы и поля находятся в интерфейсе.

Например:

//Java program to show to protected access modifier
package test;
//Class eduCBA
public class eduCBA
(
protected void display ()
(
System.out.println("Hello World!");
)
)
//Java program to show to protected modifier in same sub-classes of different packages
package test2;
import test.*;
//Class pro is subclass of eduCBA
class pro extends eduCBA
(
public static void main(String args())
(
pro obj = new pro();
obj.display();
)
)

Выход:

Привет, мир!

3) Публичная

Пользователь может объявить класс, метод, конструктор и интерфейс с помощью «открытого» модификатора доступа, к которому может обращаться любой класс, метод, конструктор и интерфейс внутри или в разных пакетах.

  • Этот модификатор доступа имеет Безграничный среди всех модификаторов.
  • Когда какой-либо класс, метод или пакет помечаются «публичным» модификатором доступа, где он доступен каждому из любой точки программы.
  • Нет ограничений по объему класса «public» доступа, методов.

Например: -

//Java program to show to public access modifier
package test;
public class eduCBA
(
public void display ()
(
System.out.println("Hello World!");
)
)
package test2;
import test.*;
class pub
(
public static void main (String args ())
(
eduCBA obj = new eduCBA ();
obj.display ();
)
)

Выход:

Привет, мир!

4) Частный

Если метод или переменная помечены как «частные» модификаторы доступа, то код внутри этого же класса может получить доступ только к этим методам и переменным.

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

Иногда людей путают с модификаторами «приватного» и «защищенного» доступа, но они оба разные.

Например: -

//Program to show error while using a class from different packages with private modifier.
package test;
class eduCBA
(
private void display()
(
System.out.println("Hello World!");
)
)
class Check
(
public static void main (String args())
(
eduCBA obj = new eduCBA();
//make class check to access private method of another class eduCBA.
obj.display();
)
)

Выход:

ошибка: display () имеет частный доступ в eduCBA obj.display ();

Вывод

Модификатор доступа к Java дает вам дополнительное преимущество перед вашей программой, когда вы делаете ее общедоступной. Как мы изучали выше, Различные типы модификаторов доступа в JAVA и их спецификация.

Так что имейте в виду каждый раз, когда вы используете один из них в качестве доступа к классу или интерфейсу, поскольку они не только предоставляют доступ, но и переопределяют их. При этом всегда есть опасения относительно доступности метода в программе. Например, если интерфейсу назначен модификатор доступа «по умолчанию» в суперклассе, тогда ему разрешено переопределять модификаторы доступа, используемые в подклассе метода.

Примечание. Класс включает в себя переменные, конструкторы, поля и методы, а интерфейс включает в себя определенные поля или методы.

Рекомендуемые статьи

Это руководство по модификаторам доступа в Java. Здесь мы обсуждаем различные типы модификаторов доступа в Java и их спецификации. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. Объектно-ориентированное программирование на Java
  2. Java интервью вопросы
  3. Что такое синхронизация в Java?
  4. Автобокс и распаковка в Java
  5. Модификаторы доступа в C ++ (типы)
  6. Удивительное руководство по доступу модификаторов в C #
  7. Модификаторы доступа в PHP
  8. JRE против JVM | Топ 8 отличий с (Инфографика)