Вступ до модифікаторів доступу на 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) Захищений

Синтаксис "захищений" використовується користувачами, коли вони хочуть використовувати цей модифікатор доступу.

  • Цей модифікатор доступу доступний лише в одному пакеті або в однакових підкласах у різних класах (але користувачі повинні імпортувати цей пакет там, де він був визначений).
  • Користувач не може маркувати клас та інтерфейси "захищеним" модифікатором доступу. Однак Методи та поля можуть бути оголошені захищеними, якщо методи та поля знаходяться в інтерфейсі.

Наприклад:

//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) громадські

Користувач може оголосити клас, метод, конструктор та інтерфейс з модифікатором доступу для публіки, який може отримати доступ до будь-якого класу, методу, конструктора та інтерфейсу всередині або різних пакетів.

  • Цей модифікатор доступу має безмежне серед усіх модифікаторів.
  • Коли будь-який клас, методи або пакунок позначені модифікатором доступу для публіки, де він доступний для всіх з будь-якої програми.
  • Немає обмежень щодо обсягу методів "загальнодоступного" доступу, методів.

Наприклад: -

//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) Приватний

Коли метод або змінна, позначена як "приватні" модифікатори доступу, то код всередині цього ж класу може отримати доступ лише до цих методів і змінних.

Користувач не може оголосити будь-який суперклас із модифікатором доступу "приватний" у програмі, і якщо користувач робить це з будь-яким класом, він робить цей клас недоступним для будь-якого іншого класу в тому ж пакеті, що робить клас не корисним, хоча користувач може оголосити змінні та методи в класі за допомогою приватного модифікатора доступу, щоб ніхто не міг використовувати ці змінні та методи.

Інколи люди плутаються з "приватним" і "захищеним" модифікатором доступу, але вони обидва різні.

Наприклад: -

//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 найкращих відмінностей (Інфографіка)