logo

Java pública vs privada

A Java, públic i privat són paraules clau que es coneixen com a modificador d'accés o especificador . Restringeix l'abast o l'accessibilitat d'una classe, constructor , les variables , mètode s i membres de dades. Depèn de què s'apliqui. Java proporciona els quatre tipus de modificadors d'accés: públic, privat, protegit , i per defecte . Però en aquesta secció, parlarem només de dos públics i privats, i també en parlarem diferència entre l'especificador d'accés públic i privat amb exemple.

Els modificadors d'accés controlen si altres classes poden utilitzar un camp determinat o invocar un mètode concret. Java ofereix dos nivells de control d'accés:

    Nivell més alt:En aquest nivell, només podem utilitzar a públic Nivell de membre:En aquest nivell, podem utilitzar públic, privat, protegit i paquet-privat (si no fem servir cap modificador explícit es coneix com a package-private).

La taula següent mostra el nivell d'accés als membres permès pels modificadors públics i privats.

cadena java de la matriu
Java pública vs privada

Encara no aclareixes les diferències entre els dos? Permeteu-me que us mostri una figura que demostra com els nivells d'accés afecten la visibilitat. La figura següent mostra els dos paquets p1 i p2 . Cada paquet conté dues classes Demostració 1 i Demo 2 (al paquet p1) i Demo3 i Demo4 (al paquet p2).

Java pública vs privada

La taula següent descriu la visibilitat de les classes si fem les classes públiques i privades una per una. A la figura anterior, la Demo1 és l'única classe visible per a cada modificador d'accés.

Java pública vs privada

Parlem-ho en detall.

Modificador d'accés públic

Es pot especificar utilitzant el públic paraula clau. El seu abast o accessibilitat és el més ampli entre altres especificadors d'accés. Es pot accedir a les variables, classes i mètodes declarats com a públics des de qualsevol lloc del programa. No imposa restriccions a l'abast dels membres de les dades públiques. Si declarem mètodes i classes com a públics, també violen el principi de encapsulació . També el podem utilitzar amb les classes de primer nivell.

Utilitzem l'especificador d'accés privat a a Programa Java per a una millor comprensió.

Demo1.java

actriu de cinema rekha
 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(); } } 

Sortida

 Javatpoint 

Modificador d'accés privat

És el contrari del modificador públic. Es pot especificar utilitzant el privat paraula clau seguida del nom de classe (aplicat només a les classes imbricades) o el nom del mètode o el membre de les dades. No podem utilitzar l'especificador d'accés privat amb les classes de nivell superior o interfícies . Només es pot accedir a les variables, mètodes i classes declarades com a privades a la classe en què es declaren o heretant les classes pare. És l'especificador d'accés més restringit de Java. És la forma d'encapsulació de les altures.

10 ml és quant
  • No podem anul·lar els mètodes que es declaren com a privats.
  • Si utilitzem el modificador privat amb el constructor, evitem que sigui subclassificat.
  • Oculta les classes de les altres classes dins del mateix paquet .

Utilitzem l'especificador d'accés privat en un programa Java per a una millor comprensió.

En l'exemple següent, hem declarat dues classes: Demo1 i Demo2. A la classe Demo1, hem definit un mètode espectacle() com a privat. La classe Demo2 conté el mètode main() en el qual hem creat un objecte de la classe Demo1. Després d'això, estem intentant accedir al mètode privat de la classe Demo1 des de la classe Demo2, això no és possible. Però tot i així, executarem el programa per veure quin error mostra.

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

Quan executem el programa anterior, mostra el següent error:

Java pública vs privada

Diferència entre l'especificador d'accés públic i privat a Java

La principal diferència entre els modificadors públics i privats és la seva visibilitat. Java classifica la visibilitat dels membres de la classe de la següent manera:

  • Subclasses en el mateix paquet
  • No subclasses en el mateix paquet
  • Subclasses en diferents paquets
  • Classes ni en el mateix paquet ni en subclasses
Java pública vs privada

Quina hem d'utilitzar?

Hauríem d'utilitzar el modificador d'accés públic si volem que el mètode o la propietat sigui visible des de qualsevol lloc, altres classes i instàncies de l'objecte. Utilitzeu el modificador d'accés privat si voleu que el mètode o la propietat només sigui visible a la seva pròpia classe. Eviteu els camps públics excepte les constants.