Wprowadzenie do modyfikatorów dostępu w Javie

Jak wszyscy wiemy, Java jest jednym z najlepszych języków programowania na świecie. Miliardy urządzeń polegają na nim przez ostatnie dwie dekady. Java jest szybkim, niezawodnym, bezpiecznym i wieloplatformowym językiem. Java działa na dowolnym urządzeniu, pod warunkiem, że ma ono Java Runtime (JRE), co czyni go wieloplatformowym, szybkim i niezawodnym językiem. Modyfikator dostępu jest właściwością Java, co czyni go bezpiecznym na wielu platformach. Java zapewnia programiście bezpieczeństwo na poziomie klasy (podczas enkapsulacji) za pomocą właściwości modyfikatora dostępu. Według książki klasa jest planem budowy obiektu w java, co czyni go „elementem konstrukcyjnym” programu, ponieważ Java jest językiem zorientowanym obiektowo. Modyfikator dostępu określa, w jaki sposób każda klasa może uzyskać dostęp do danej klasy i jej pól, konstruktorów i metod w obrębie oraz różnych pakietów. Klasa, pola, konstruktory i metody mogą mieć jeden z czterech różnych modyfikatorów dostępu Java.

  • Prywatny
  • Publiczny
  • Chroniony
  • Domyślnie - nie jest wymagane słowo kluczowe.

Różne modyfikatory dostępu w Javie

Poniższa tabela podsumowuje, w jaki sposób możemy zastosować modyfikatory dostępu Java do programu:

ModyfikatoryKlasaPakietyPodklasaŚwiat
PrywatnyYN.N.N.
PublicznyYYYY
ChronionyYYYN.
DomyślnaYYN.N.

Omówimy każdy modyfikator dostępu Java w poniższych sekcjach.

1) Domyślnie

Gdy jakakolwiek klasa, elementy danych i zmienna zostaną zadeklarowane poprzez brak zapisu przy użyciu modyfikatora dostępu, wówczas zostanie ustawiony na „domyślny” modyfikator dostępu. „Domyślny” modyfikator dostępu oznacza, że ​​kod w dowolnej klasie może uzyskać dostęp do całego programu w tym samym pakiecie.

  • Ten modyfikator dostępu działa tylko w tym samym pakiecie.
  • Czasami „domyślny” modyfikator dostępu jest również nazywany modyfikatorem dostępu do pakietu, ponieważ jest dostępny tylko w tym samym pakiecie.
  • Podklasy nie mogą uzyskiwać dostępu do metod, elementów danych i zmiennych (pól) w nadklasie, jeżeli te metody, elementy danych i zmienne (pola) oznaczone są „domyślnym” modyfikatorem dostępu w klasie, chyba że te podklasy znajdują się w tym samym pakiecie co nadklasa.

Przykład 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!");
)
)

Wynik:

Witaj świecie!

Przykład 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();
)
)

Wynik:

Błąd czasu kompilacji.

2) Chroniony

Składnia „chroniony” jest używana przez użytkowników, gdy chcą skorzystać z tego modyfikatora dostępu.

  • Ten modyfikator dostępu jest dostępny tylko w ramach tego samego pakietu lub tych samych podklas w różnych klasach (ale użytkownicy muszą zaimportować ten pakiet, w którym został określony).
  • Użytkownik nie może oznaczać klasy i interfejsów za pomocą „chronionego” modyfikatora dostępu. Metody i pola można jednak zadeklarować jako chronione, jeśli metody i pola znajdują się w interfejsie.

Na przykład:

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

Wynik:

Witaj świecie!

3) Publiczny

Użytkownik może zadeklarować klasę, metodę, konstruktor i interfejs za pomocą „publicznego” modyfikatora dostępu, który może uzyskać dostęp za pomocą dowolnej klasy, metody, konstruktora i interfejsu w ramach lub różnych pakietach.

  • Ten modyfikator dostępu ma Boundless wśród wszystkich modyfikatorów.
  • Gdy dowolna klasa, metoda lub pakiet oznaczony „publicznym” modyfikatorem dostępu, w którym jest on dostępny dla każdego z dowolnego miejsca z programu.
  • Nie ma ograniczeń co do zakresu „publicznej” klasy dostępu, metod.

Na przykład: -

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

Wynik:

Witaj świecie!

4) Prywatny

Gdy metoda lub zmienna oznaczona jako „prywatne” modyfikatory dostępu, kod wewnątrz tej samej klasy może uzyskać dostęp tylko do tych metod i zmiennych.

Użytkownik nie może zadeklarować żadnej superklasy z „prywatnym” modyfikatorem dostępu w programie, a jeśli użytkownik zrobi to z dowolną klasą, wówczas klasa ta nie będzie dostępna dla żadnej innej klasy w tym samym pakiecie, co czyni klasę bezużyteczną, chociaż użytkownik może deklarować zmienne i metody w klasie za pomocą „prywatnego” modyfikatora dostępu, aby nikt nie mógł korzystać z tych zmiennych i metod.

Czasami ludzie mylą się z „prywatnym” i „chronionym” modyfikatorem dostępu, ale oba są różne.

Na przykład: -

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

Wynik:

error: display () ma prywatny dostęp w eduCBA obj.display ();

Wniosek

Modyfikator dostępu Java zapewnia dodatkową przewagę nad programem, gdy zostanie upubliczniony. Jak badamy powyżej, Różne typy modyfikatorów dostępu w JAVA i ich specyfikacja.

Należy więc pamiętać o każdym użyciu jednego z nich jako dostępu do klasy lub interfejsu, ponieważ nie tylko zapewniają one dostęp, ale również je zastępują. Chociaż zawsze istnieje obawa dotycząca dostępności metody w programie. Na przykład, jeśli interfejsowi zostanie przypisany „domyślny” modyfikator dostępu w nadklasie, wówczas można zastąpić modyfikatory dostępu używane w podklasie metody.

Uwaga: Klasa obejmuje zmienne, konstruktory, pola i metody, a interfejs zawiera określone pola lub metody.

Polecane artykuły

Jest to przewodnik po modyfikatorach dostępu w Javie. Tutaj omawiamy różne typy modyfikatorów dostępu w Javie i ich specyfikację. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Programowanie obiektowe w Javie
  2. Pytania do wywiadu Java
  3. Co to jest synchronizacja w Javie?
  4. Autoboxing i Unboxing w Javie
  5. Modyfikatory dostępu w C ++ (typy)
  6. Niesamowity przewodnik po modyfikatorach dostępu w C #
  7. Dostęp do modyfikatorów w PHP
  8. JRE vs JVM | 8 najważniejszych różnic z (Infografika)