logo

Modyfikatory dostępu w Javie

w Javie modyfikatory dostępu pomagają ograniczyć zakres klasy, konstruktora, zmiennej, metody lub elementu danych. Zapewnia użytkownikowi bezpieczeństwo, dostępność itp., w zależności od modyfikatora dostępu użytego z elementem. W tym artykule dowiemy się o modyfikatorach dostępu Java, ich typach i zastosowaniach modyfikatorów dostępu.

Rodzaje modyfikatorów dostępu w Javie

W Javie dostępne są cztery typy modyfikatorów dostępu:



  1. Domyślne — nie jest wymagane żadne słowo kluczowe
  2. Prywatny
  3. Chroniony
  4. Publiczny

1. Domyślny modyfikator dostępu

Jeśli dla klasy, metody lub elementu danych nie określono żadnego modyfikatora dostępu, mówi się, że ma on domyślny domyślnie modyfikator dostępu. Dostępne są elementy danych, klasy lub metody, które nie są zadeklarowane przy użyciu żadnych modyfikatorów dostępu, tj. posiadające domyślne modyfikatory dostępu tylko w ramach tego samego pakietu .

W tym przykładzie utworzymy dwa pakiety, a klasy w pakietach będą miały domyślne modyfikatory dostępu i spróbujemy uzyskać dostęp do klasy z jednego pakietu z klasy drugiego pakietu.

Program 1:



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


Program 2:

połącz bazę danych Java
Jawa
// 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();   }  }>

Wyjście:

Compile time error>

2. Modyfikator dostępu prywatnego

Modyfikator dostępu prywatnego jest określany za pomocą słowa kluczowego prywatny . Dostępne są tylko metody lub elementy członkowskie danych zadeklarowane jako prywatne w klasie w którym są zadeklarowane.



  • Jakikolwiek inny klasa the ten sam pakiet nie będzie miał dostępu tych członków.
  • Klasy lub interfejsy najwyższego poziomu nie mogą być zadeklarowane jako prywatne, ponieważ
    • private oznacza widoczne tylko w otaczającej klasie.
    • chronione oznacza widoczne tylko w obrębie otaczającej klasy i wszelkich podklas

Dlatego te modyfikatory pod względem zastosowania do klas mają zastosowanie tylko do klas zagnieżdżonych, a nie do klas najwyższego poziomu

W tym przykładzie utworzymy dwie klasy A i B w tym samym pakiecie p1. Zadeklarujemy metodę w klasie A jako prywatną i spróbujemy uzyskać dostęp do tej metody z klasy B i zobaczyć wynik.

prawidłowe identyfikatory Java
Jawa
// 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();  } }>

Wyjście:

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

3. Modyfikator dostępu chronionego

Modyfikator dostępu chronionego jest określany za pomocą słowa kluczowego chroniony .

Metody lub elementy danych zadeklarowane jako chronione to dostępne w ramach tego samego pakietu lub podklas w różnych pakietach.

W tym przykładzie utworzymy dwa pakiety p1 i p2. Klasa A w p1 jest upubliczniona, aby uzyskać do niej dostęp w p2. Wyświetlanie metody w klasie A jest chronione, a klasa B jest dziedziczona z klasy A, a dostęp do tej chronionej metody uzyskuje się poprzez utworzenie obiektu klasy B.

Program 1:

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


Program 2:

Jawa
// 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();  } }>

Wyjście:

techcodeview.com>

Modyfikator dostępu publicznego

Modyfikator dostępu publicznego jest określany za pomocą słowa kluczowego publiczny .

  • Modyfikator dostępu publicznego ma najszerszy zakres wśród wszystkich innych modyfikatorów dostępu.
  • Klasy, metody lub elementy członkowskie danych zadeklarowane jako publiczne to: dostępne z każdego miejsca w programie. Nie ma ograniczeń co do zakresu członków danych publicznych.

Program 1:

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

Program 2:

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

Wyjście:

techcodeview.com>

Ważne punkty:

  • Jeśli z Twojej klasy korzystają inni programiści, spróbuj zastosować najbardziej restrykcyjny poziom dostępu, jaki ma sens dla konkretnego członka. Używaj prywatnego, chyba że masz dobry powód, aby tego nie robić.
  • Unikaj pól publicznych z wyjątkiem stałych.

Algorytm użycia modyfikatora dostępu w Javie

Oto podstawowy algorytm używania modyfikatorów dostępu w Javie:

  • Zdefiniuj klasę: Utwórz klasę reprezentującą obiekt, którym chcesz zarządzać.
  • Zdefiniuj zmienne instancji: W klasie zdefiniuj zmienne instancji reprezentujące dane, którymi chcesz zarządzać.
  • Określ modyfikator dostępu: Dla każdej zmiennej instancji określ modyfikator dostępu, który określa widoczność zmiennej. Trzy główne modyfikatory dostępu w Javie to prywatny, chroniony i publiczny.
  • Użyj private dla zmiennych, które powinny być dostępne tylko w obrębie klasy: Jeśli chcesz uniemożliwić dostęp do zmiennej spoza klasy, użyj modyfikatora dostępu prywatnego. Jest to najbardziej restrykcyjny modyfikator dostępu i zapewnia najwyższy poziom enkapsulacji.
  • Użyj chronione dla zmiennych, które powinny być dostępne w klasie i jej podklasach : Jeśli chcesz zezwolić na dostęp do zmiennej z klasy i jej podklas, użyj modyfikatora chronionego dostępu. Jest to mniej restrykcyjne niż prywatne i zapewnia pewien poziom dziedziczenia.
  • Użyj public dla zmiennych, które powinny być dostępne z dowolnego miejsca : Jeśli chcesz zezwolić na dostęp do zmiennej z dowolnego miejsca, użyj modyfikatora dostępu publicznego. Jest to najmniej restrykcyjny modyfikator dostępu i zapewnia najmniejszy stopień enkapsulacji.
  • Użyj metod akcesorów i mutatorów, aby zarządzać dostępem do zmiennych: Aby uzyskać dostęp do zmiennych i je modyfikować, użyj metod akcesorowych (getter) i mutatorów (setter), nawet jeśli zmienne mają publiczny modyfikator dostępu. Zapewnia to poziom abstrakcji i sprawia, że ​​kod jest łatwiejszy w utrzymaniu i testowaniu.

Często zadawane pytania dotyczące modyfikatorów dostępu

1. Czym są modyfikatory dostępu w Javie?

Modyfikatory dostępu w Javie to słowa kluczowe używane do kontrolowania użycia metod, konstruktorów, pól i metod w klasie.

2. Co to jest void w Javie?

Void w Javie służy do określania wartości zwracanej metodą.

3. Jakich jest 12 modyfikatorów w Javie?

12 Modyfikatory w Javie są publiczne, prywatne, chronione, domyślne, ostateczne, zsynchronizowane, abstrakcyjne, natywne, strictfp, przejściowe i ulotne.