logo

Publiczna kontra prywatna Java

na Jawie, publiczny I prywatny Czy słowa kluczowe które są znane jako modyfikator dostępu Lub specyficzny . Ogranicza zakres lub dostępność klasy, konstruktor , zmienne , metoda s i elementy danych. To zależy od tego, gdzie się go zastosuje. Java udostępnia cztery typy modyfikatorów dostępu: publiczne, prywatne, chronione , I domyślny . Ale w tej sekcji omówimy tylko dwa publiczne i prywatne, a także omówimy różnica między specyfikatorem dostępu publicznego i prywatnego z przykładem.

Modyfikatory dostępu kontrolują, czy inne klasy mogą używać określonego pola lub wywoływać określoną metodę. Jawa zapewnia dwa poziomy kontroli dostępu:

    Najwyższy poziom:Na tym poziomie możemy używać tylko a publiczny Poziom członkowski:Na tym poziomie możemy skorzystać publiczne, prywatne, chronione I pakiet-prywatny (jeśli nie użyjemy żadnego jawnego modyfikatora, nazywamy go pakietem prywatnym).

W poniższej tabeli przedstawiono poziom dostępu członków dozwolony przez modyfikatory public i private.

b+ drzewa
Publiczna kontra prywatna Java

Nadal nie rozumiesz różnic między nimi? Pokażę rysunek pokazujący, jak poziomy dostępu wpływają na widoczność. Poniższy rysunek przedstawia dwa pakiety p1 I p2 . Każdy pakiet zawiera dwie klasy Demo1 I Demo2 (w pakiecie p1), oraz Demo3 I Demo4 (w pakiecie p2).

Publiczna kontra prywatna Java

Poniższa tabela opisuje widoczność klas, jeśli po kolei ustawimy je jako publiczne i prywatne. Na powyższym rysunku Demo1 jest jedyną klasą widoczną dla każdego modyfikatora dostępu.

Publiczna kontra prywatna Java

Omówmy to szczegółowo.

Modyfikator dostępu publicznego

Można to określić za pomocą publiczny słowo kluczowe. Jego zakres lub dostępność jest najszersza spośród innych specyfikatorów dostępu. Dostęp do zmiennych, klas i metod zadeklarowanych jako publiczne można uzyskać z dowolnego miejsca w programie. Nie nakłada ograniczeń na zakres członków danych publicznych. Jeśli zadeklarujemy metody i klasy jako publiczne, naruszają one również zasadę kapsułkowanie . Możemy go również używać z klasami najwyższego poziomu.

Użyjmy specyfikatora dostępu prywatnego w pliku a Program Java dla lepszego zrozumienia.

Demo1.java

hashset Java
 package p1; public class Demo1 { public void show() { System.out.println('Javatpoint'); } } 

Demo2.java

 package p2; import p1.*; class Demo2 { public static void main(String args[]) { Demo1 obj = new Demo1(); obj.show(); } } 

Wyjście

 Javatpoint 

Modyfikator dostępu prywatnego

Jest przeciwieństwem modyfikatora public. Można to określić za pomocą prywatny słowo kluczowe, po którym następuje nazwa klasy (stosowane tylko w klasach zagnieżdżonych) lub nazwa metody lub element danych. Nie możemy używać specyfikatora dostępu prywatnego z klasami najwyższego poziomu lub interfejsy . Dostęp do zmiennych, metod i klas zadeklarowanych jako prywatne można uzyskać tylko w klasie, w której zostały zadeklarowane, lub poprzez dziedziczenie klas nadrzędnych. Jest to najbardziej ograniczony specyfikator dostępu w Javie. Jest to szczytowa forma enkapsulacji.

  • Nie możemy nadpisanie metody zadeklarowane jako prywatne.
  • Jeśli użyjemy modyfikatora private z konstruktorem, unikniemy jego podklasy.
  • Ukrywa klasy przed innymi klasami w tym samym pakiet .

Dla lepszego zrozumienia użyjmy specyfikatora dostępu prywatnego w programie Java.

obiad vs czas kolacji

W poniższym przykładzie zadeklarowaliśmy dwie klasy: Demo1 i Demo2. W klasie Demo1 zdefiniowaliśmy metodę pokazywać() jako prywatny. Klasa Demo2 zawiera metodę main(), w której utworzyliśmy obiekt klasy Demo1. Następnie próbujemy uzyskać dostęp do prywatnej metody klasy Demo1 z klasy Demo2, co nie jest możliwe. Mimo to uruchomimy program, aby zobaczyć, jaki błąd pokazuje.

 class Demo1 { //defining method as private private void show() { System.out.println('Javatpoint'); } } public class Demo2 { public static void main(String args[]) { Demo1 obj = new Demo1(); //trying to access private method of the class Demo1 obj.show(); } } 

Kiedy wykonujemy powyższy program, pokazuje następujący błąd:

Publiczna kontra prywatna Java

Różnica między specyfikatorem dostępu publicznego i prywatnego w Javie

Główną różnicą między modyfikatorami publicznymi i prywatnymi jest ich widoczność. Java kategoryzuje widoczność członków klasy w następujący sposób:

  • Podklasy w tym samym pakiecie
  • Podklasy inne niż podklasy w tym samym pakiecie
  • Podklasy w różnych pakietach
  • Klasy nie należące do tego samego pakietu ani podklas
Publiczna kontra prywatna Java

Którego powinniśmy użyć?

Modyfikatora dostępu publicznego powinniśmy używać, jeśli chcemy, aby metoda lub właściwość była widoczna z dowolnego miejsca, innych klas i instancji obiektu. Użyj modyfikatora dostępu prywatnego, jeśli chcesz, aby metoda lub właściwość była widoczna tylko w jej własnej klasie. Unikaj pól publicznych z wyjątkiem stałych.