logo

Модифікатори доступу в Java

у Java модифікатори Access допомагають обмежити область класу, конструктора, змінної, методу або члена даних. Він забезпечує безпеку, доступність тощо для користувача залежно від модифікатора доступу, який використовується з елементом. Давайте дізнаємося про модифікатори доступу Java, їх типи та використання модифікаторів доступу в цій статті.

Типи модифікаторів доступу в Java

У Java є чотири типи модифікаторів доступу:

  1. За замовчуванням – ключове слово не потрібне
  2. Приватний
  3. Захищений
  4. Громадський

1. Модифікатор доступу за замовчуванням

Якщо для класу, методу або елемента даних не вказано жодного модифікатора доступу, кажуть, що він має за замовчуванням модифікатор доступу за замовчуванням. Члени даних, класи або методи, які не оголошені за допомогою жодних модифікаторів доступу, тобто мають модифікатори доступу за замовчуванням, доступні тільки в одному пакеті .



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

Програма 1:

Java
// Java program to illustrate default modifier  package p1;  // Class Geek is having Default access modifier  class Geek  {   void display()   {   System.out.println('Hello World!');   }  }>


Програма 2:

приклад списку в java
Java
// Java program to illustrate error while  // using class from different package with  // default modifier  package p2;  import p1.*;  // This class is having default access modifier  class GeekNew  {   public static void main(String args[])   {   // Accessing class Geek from package p1   Geek obj = new Geek();   obj.display();   }  }>

Вихід:

Compile time error>

2. Модифікатор приватного доступу

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

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

Отже, ці модифікатори з точки зору застосування до класів застосовуються лише до вкладених класів, а не до класів верхнього рівня

У цьому прикладі ми створимо два класи A і B в одному пакеті p1. Ми оголосимо метод у класі A як приватний і спробуємо отримати доступ до цього методу з класу B і побачити результат.

нарізка масиву java
Java
// Java program to illustrate error while // Using class from different package with // Private Modifier package p1; // Class A class A {  private void display()  {  System.out.println('techcodeview.com');  } } // Class B class B {  public static void main(String args[])  {  A obj = new A();  // Trying to access private method  // of another class  obj.display();  } }>

Вихід:

error: display() has private access in A  obj.display();>

3. Модифікатор захищеного доступу

Модифікатор захищеного доступу вказується за допомогою ключового слова захищений .

Методи або члени даних, оголошені як захищені, є доступні в одному пакеті або підкласи в різних пакетах.

У цьому прикладі ми створимо два пакети p1 і p2. Клас A у p1 оприлюднюється для доступу до нього в p2. Відображення методу в класі A є захищеним, а клас B успадковується від класу A, а потім доступ до цього захищеного методу здійснюється шляхом створення об’єкта класу B.

Програма 1:

Java
// Java Program to Illustrate // Protected Modifier package p1; // Class A public class A {  protected void display()  {  System.out.println('techcodeview.com');  } }>


Програма 2:

Java
// Java program to illustrate // protected modifier package p2; // importing all classes in package p1 import p1.*;  // Class B is subclass of A class B extends A {  public static void main(String args[])  {  B obj = new B();  obj.display();  } }>

Вихід:

techcodeview.com>

Модифікатор публічного доступу

Модифікатор публічного доступу вказується за допомогою ключового слова громадськість .

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

Програма 1:

Java
// Java program to illustrate  // public modifier  package p1;  public class A  {  public void display()   {   System.out.println('techcodeview.com');   }  }>

Програма 2:

Java
package p2; import p1.*; class B {  public static void main(String args[])  {  A obj = new A();  obj.display();  } }>

Вихід:

екта капур актор
techcodeview.com>

Важливі моменти:

  • Якщо інші програмісти використовують ваш клас, спробуйте використовувати найбільш обмежений рівень доступу, який має сенс для певного члена. Використовуйте приватне, якщо у вас немає поважних причин цього не робити.
  • Уникайте публічних полів, за винятком констант.

Алгоритм використання модифікатора доступу в Java

Ось базовий алгоритм використання модифікаторів доступу в Java:

  • Визначте клас: Створіть клас, який представлятиме об’єкт, яким ви хочете керувати.
  • Визначте змінні екземпляра: У класі визначте змінні екземпляра, які представляють дані, якими ви хочете керувати.
  • Укажіть модифікатор доступу: для кожної змінної екземпляра вкажіть модифікатор доступу, який визначає видимість змінної. Три основні модифікатори доступу в Java: приватний, захищений і публічний.
  • Використовуйте private для змінних, які мають бути доступні лише в межах класу: Якщо ви хочете запобігти доступу до змінної поза класом, використовуйте модифікатор приватного доступу. Це найбільш обмежений модифікатор доступу та забезпечує найвищий рівень інкапсуляції.
  • Використовуйте protected для змінних, які повинні бути доступні в межах класу та його підкласів : якщо ви хочете дозволити доступ до змінної з класу та його підкласів, використовуйте модифікатор захищеного доступу. Це менш обмежувальне, ніж приватне, і забезпечує певний рівень успадкування.
  • Використовуйте public для змінних, які повинні бути доступні звідусіль : Якщо ви хочете дозволити доступ до змінної з будь-якого місця, використовуйте модифікатор публічного доступу. Це найменш обмежувальний модифікатор доступу та забезпечує найменшу кількість інкапсуляції.
  • Використовуйте методи доступу та мутатора для керування доступом до змінних: Щоб отримати доступ до змінних і змінити їх, використовуйте методи доступу (getter) і мутатора (setter), навіть якщо змінні мають модифікатор публічного доступу. Це забезпечує рівень абстракції та робить ваш код більш придатним для обслуговування та тестування.

Поширені запитання щодо модифікаторів доступу

1. Що таке модифікатори доступу в Java?

Модифікатори доступу в Java — це ключові слова, які використовуються для керування використанням методів, конструкторів, полів і методів у класі.

2. Що таке void у Java?

Void у Java використовується, щоб не вказати значення, що повертається за допомогою методу.

3. Що таке 12 модифікаторів у Java?

12 Модифікаторів у Java є загальнодоступними, приватними, захищеними, за замовчуванням, остаточними, синхронізованими, абстрактними, нативними, strictfp, тимчасовими та змінними.