logo

Java public vs privat

În Java, public și privat sunt Cuvinte cheie care sunt cunoscute ca un modificator de acces sau specificatorul . Limitează domeniul de aplicare sau accesibilitatea unei clase, constructor , variabile , metodă s și membrii datelor. Depinde de ce se aplică. Java oferă cele patru tipuri de modificatori de acces: public, privat, protejat , și Mod implicit . Dar în această secțiune, vom discuta doar două publice și private și, de asemenea, vom discuta despre diferența dintre specificatorul de acces public și privat cu exemplu.

Modificatorii de acces controlează dacă alte clase pot folosi un anumit câmp sau invoca o anumită metodă. Java oferă două niveluri de control al accesului:

    Nivel superior:La acest nivel, putem folosi doar a public Nivel de membru:La acest nivel, putem folosi public, privat, protejat și pachet-privat (dacă nu folosim niciun modificator explicit, este cunoscut ca pachet-privat).

Următorul tabel arată nivelul de acces la membri permis de modificatorii publici și privați.

tutorial limbaj de programare java
Java public vs privat

Încă nu lămuriți diferențele dintre cele două? Permiteți-mi să vă arăt o cifră care demonstrează modul în care nivelurile de acces afectează vizibilitatea. Figura următoare prezintă cele două pachete p1 și p2 . Fiecare pachet conține două clase Demo1 și Demo2 (în pachetul p1) și Demo3 și Demo4 (în pachet p2).

Java public vs privat

Următorul tabel descrie vizibilitatea claselor dacă facem clasele publice și private una câte una. În figura de mai sus, Demo1 este singura clasă care este vizibilă pentru fiecare modificator de acces.

Java public vs privat

Să o discutăm în detaliu.

Modificator de acces public

Poate fi specificat utilizând public cuvânt cheie. Domeniul său de aplicare sau accesibilitatea este cel mai larg dintre alți specificatori de acces. Variabilele, clasele și metodele declarate ca publice pot fi accesate de oriunde în program. Nu impune restricții asupra domeniului de aplicare a datelor publice. Dacă declarăm metode și clase ca fiind publice, ele încalcă și principiul încapsulare . Îl putem folosi și cu clasele de nivel superior.

Să folosim specificatorul de acces privat în a program Java pentru o mai bună înțelegere.

Demo1.java

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

Ieșire

 Javatpoint 

Modificator de acces privat

Este opusul modificatorului public. Poate fi specificat utilizând privat cuvânt cheie urmat de numele clasei (aplicat numai pe clase imbricate) sau numele metodei sau membru al datelor. Nu putem folosi specificatorul de acces privat cu clasele de nivel superior sau interfețe . Variabilele, metodele și clasele declarate ca private pot fi accesate numai în clasa în care sunt declarate sau prin moștenirea claselor părinte. Este cel mai restricționat specificator de acces din Java. Este forma înălțimii de încapsulare.

  • Nu putem trece peste metodele care sunt declarate private.
  • Dacă folosim modificatorul privat cu constructorul, evităm ca acesta să fie subclasat.
  • Ascunde clasele de celelalte clase din cadrul aceluiași pachet .

Să folosim specificatorul de acces privat într-un program Java pentru o mai bună înțelegere.

dactilografiat fiecare

În exemplul următor, am declarat două clase: Demo1 și Demo2. În clasa Demo1, am definit o metodă spectacol() ca privat. Clasa Demo2 conține metoda main() în care am creat un obiect din clasa Demo1. După aceea, încercăm să accesăm metoda privată a clasei Demo1 din clasa Demo2, ceea ce nu este posibil. Dar totuși, vom executa programul pentru a vedea ce eroare arată.

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

Când executăm programul de mai sus, acesta arată următoarea eroare:

Java public vs privat

Diferența dintre specificatorul de acces public și privat în Java

Diferența majoră dintre modificatorii publici și cei privați este vizibilitatea acestuia. Java clasifică vizibilitatea pentru membrii clasei după cum urmează:

  • Subclase în același pachet
  • Non-subclase în același pachet
  • Subclase în diferite pachete
  • Clase nici în același pachet și nici subclase
Java public vs privat

Pe care ar trebui să-l folosim?

Ar trebui să folosim modificatorul de acces public dacă dorim să facem metoda sau proprietatea vizibilă de oriunde, alte clase și instanțe ale obiectului. Utilizați modificatorul de acces privat dacă doriți să faceți metoda sau proprietatea vizibilă numai în propria sa clasă. Evitați câmpurile publice, cu excepția constantelor.