Введение в модификаторы доступа в Java
Как все мы знаем, Java является одним из лучших языков программирования в мире. Миллиарды устройств используют его в течение последних двух десятилетий. Java - это быстрый, надежный, безопасный и многоплатформенный язык. Java работает на любом устройстве, если у этого устройства есть Java Runtime (JRE), что делает его мультиплатформенным, быстрым и надежным языком. Модификатор доступа является свойством Java, что делает его безопасным для всей мультиплатформенности. Java обеспечивает безопасность на уровне класса (во время инкапсуляции) для программиста с помощью свойства модификатора доступа. Согласно книге, Class является проектом для создания объекта в Java, что делает его «строительным блоком» для программы, поскольку Java является объектно-ориентированным языком. Модификатор доступа определяет, как любой класс может обращаться к данному классу и его полям, конструкторам и методам внутри, а также к различным пакетам. Класс, поля, конструкторы и методы могут иметь один из четырех различных модификаторов доступа Java.
- Частный
- общественного
- защищенный
- По умолчанию - ключевое слово не требуется.
Различные модификаторы доступа в Java
Следующая таблица суммирует, как мы можем применить модификаторы доступа Java к программе:
Модификаторы | Учебный класс | пакеты | Подгруппа | Мир |
Частный | Y | N | N | N |
общественного | Y | Y | Y | Y |
защищенный | Y | Y | Y | N |
По умолчанию | Y | Y | N | N |
Мы рассмотрим каждый модификатор доступа 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 и их спецификации. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -
- Объектно-ориентированное программирование на Java
- Java интервью вопросы
- Что такое синхронизация в Java?
- Автобокс и распаковка в Java
- Модификаторы доступа в C ++ (типы)
- Удивительное руководство по доступу модификаторов в C #
- Модификаторы доступа в PHP
- JRE против JVM | Топ 8 отличий с (Инфографика)