logo

Javna vs privatna Java

U Javi, javnost i privatna su ključne riječi koji su poznati kao an modifikator pristupa ili specifikator . Ograničava opseg ili dostupnost klase, konstruktor , varijable , metoda s, i podatkovni članovi. Ovisi o tome koji se primjenjuje. Java nudi četiri vrste modifikatora pristupa: javno, privatno, zaštićeno , i zadano . Ali u ovom odjeljku raspravljat ćemo samo o dva javna i privatna, a također ćemo raspravljati o razlika između javnog i privatnog specifikatora pristupa s primjerom.

Modifikatori pristupa kontroliraju mogu li druge klase koristiti određeno polje ili pozvati određenu metodu. Java pruža dvije razine kontrole pristupa:

    Najviša razina:Na ovoj razini možemo koristiti samo a javnost Razina člana:Na ovoj razini, možemo koristiti javno, privatno, zaštićeno i paket-privatno (ako ne koristimo eksplicitni modifikator poznat je kao package-private).

Sljedeća tablica prikazuje razinu pristupa članovima koju dopuštaju javni i privatni modifikatori.

spajanje sortiranje u Javi
Javna vs privatna Java

Još uvijek nisu jasne razlike između to dvoje? Dopustite mi da vam pokažem sliku koja pokazuje kako razine pristupa utječu na vidljivost. Sljedeća slika prikazuje dva paketa p1 i p2 . Svaki paket sadrži dvije klase Demo1 i Demo2 (u paketu p1), i Demo3 i Demo4 (u paketu p2).

Javna vs privatna Java

Sljedeća tablica opisuje vidljivost klasa ako jednu po jednu klasu učinimo javnom i privatnom. Na gornjoj slici Demo1 je jedina klasa koja je vidljiva za svaki modifikator pristupa.

Javna vs privatna Java

Raspravljajmo o tome detaljno.

Modifikator javnog pristupa

Može se odrediti pomoću javnost ključna riječ. Njegov opseg ili dostupnost je najširi među ostalim specifikatorima pristupa. Varijablama, klasama i metodama deklariranim kao javnim može se pristupiti s bilo kojeg mjesta u programu. Ne nameće ograničenja na opseg članova javnih podataka. Ako metode i klase proglasimo javnima, one također krše načelo enkapsulacija . Također ga možemo koristiti s razredima najviše razine.

Upotrijebimo specifikator privatnog pristupa u a Java program za bolje razumijevanje.

Demo1.java

10 posto od 60
 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(); } } 

Izlaz

 Javatpoint 

Modifikator privatnog pristupa

To je suprotno od javnog modifikatora. Može se odrediti pomoću privatna ključna riječ iza koje slijedi naziv klase (primjenjuje se samo na ugniježđene klase) ili naziv metode ili podatkovni član. Ne možemo koristiti specifikator privatnog pristupa s klasama najviše razine ili sučelja . Varijablama, metodama i klasama deklariranim kao privatnima može se pristupiti samo u klasi u kojoj su deklarirane ili nasljeđivanjem roditeljskih klasa. To je najograničeniji specifikator pristupa u Javi. To je visinski oblik enkapsulacije.

arraylist
  • Ne možemo nadjačati metode koje su deklarirane kao privatne.
  • Ako koristimo privatni modifikator s konstruktorom, izbjegavamo da bude podklasa.
  • Skriva klase od drugih klasa unutar iste paket .

Upotrijebimo specifikator privatnog pristupa u Java programu radi boljeg razumijevanja.

U sljedećem primjeru smo deklarirali dvije klase: Demo1 i Demo2. U klasi Demo1 definirali smo metodu pokazati() kao privatni. Klasa Demo2 sadrži main() metodu u kojoj smo kreirali objekt klase Demo1. Nakon toga pokušavamo pristupiti privatnoj metodi klase Demo1 iz klase Demo2, to nije moguće. Ali svejedno, izvršit ćemo program da vidimo koju grešku prikazuje.

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

Kada izvršimo gornji program, prikazuje sljedeću pogrešku:

Javna vs privatna Java

Razlika između Specifikatora javnog i privatnog pristupa u Javi

Glavna razlika između javnih i privatnih modifikatora je njihova vidljivost. Java kategorizira vidljivost za članove klase na sljedeći način:

  • Podklase u istom paketu
  • Nepodklase u istom paketu
  • Podklase u različitim paketima
  • Klase niti u istom paketu niti podklase
Javna vs privatna Java

Koji bismo trebali koristiti?

Trebali bismo koristiti modifikator javnog pristupa ako metodu ili svojstvo želimo učiniti vidljivima s bilo kojeg mjesta, druge klase i instance objekta. Koristite modifikator privatnog pristupa ako metodu ili svojstvo želite učiniti vidljivima samo u svojoj klasi. Izbjegavajte javna polja osim konstanti.