Вступ до модифікаторів доступу на 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) Захищений
Синтаксис "захищений" використовується користувачами, коли вони хочуть використовувати цей модифікатор доступу.
- Цей модифікатор доступу доступний лише в одному пакеті або в однакових підкласах у різних класах (але користувачі повинні імпортувати цей пакет там, де він був визначений).
- Користувач не може маркувати клас та інтерфейси "захищеним" модифікатором доступу. Однак Методи та поля можуть бути оголошені захищеними, якщо методи та поля знаходяться в інтерфейсі.
Наприклад:
//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 та їх специфікацію. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -
- Об'єктно-орієнтоване програмування на Java
- Питання для інтерв'ю Java
- Що таке синхронізація в Java?
- Автобоксинг та розпакування на Java
- Модифікатори доступу в C ++ (типи)
- Дивовижний посібник з доступу до модифікаторів на C #
- Доступ до модифікаторів у PHP
- JRE проти JVM | 8 найкращих відмінностей (Інфографіка)