logo

Java pubblico o privato

A Giava, pubblico E privato Sono parole chiave che sono conosciuti come an modificatore di accesso O specificatore . Limita l'ambito o l'accessibilità di una classe, costruttore , variabili , metodo e membri dati. Dipende da quale viene applicato. Java fornisce i quattro tipi di modificatori di accesso: pubblico, privato, protetto , E predefinito . Ma in questa sezione discuteremo solo di due aspetti: pubblico e privato, e discuteremo anche di differenza tra specificatore di accesso pubblico e privato con l'esempio.

I modificatori di accesso controllano se altre classi possono utilizzare un campo particolare o invocare un metodo particolare. Giava fornisce due livelli di controllo degli accessi:

    Livello superiore:A questo livello possiamo usare solo a pubblico Livello membro:A questo livello, possiamo usare pubblico, privato, protetto E pacchetto-privato (se non utilizziamo alcun modificatore esplicito è noto come pacchetto-privato).

La tabella seguente mostra il livello di accesso ai membri consentito dai modificatori public e private.

tutorial Java per principianti
Java pubblico o privato

Ancora non sono chiare le differenze tra i due? Lascia che ti mostri una figura che dimostra come i livelli di accesso influiscono sulla visibilità. La figura seguente mostra i due pacchetti p1 E p2 . Ogni pacchetto contiene due classi Dimostrazione1 E Dimostrazione2 (nel pacchetto p1) e Dimostrazione3 E Dimostrazione4 (nel pacchetto p2).

Java pubblico o privato

La tabella seguente descrive la visibilità delle classi se rendiamo le classi pubbliche e private una per una. Nella figura sopra Demo1 è l'unica classe visibile per ogni modificatore di accesso.

Java pubblico o privato

Discutiamolo in dettaglio.

Modificatore di accesso pubblico

Può essere specificato utilizzando il comando pubblico parola chiave. Il suo ambito o accessibilità è il più ampio tra gli altri specificatori di accesso. È possibile accedere alle variabili, alle classi e ai metodi dichiarati pubblici da qualsiasi punto del programma. Non impone restrizioni sull'ambito dei membri dei dati pubblici. Se dichiariamo metodi e classi pubblici, violano anche il principio di incapsulamento . Possiamo usarlo anche con le classi di livello superiore.

Usiamo lo specificatore di accesso privato in a Programma Java per una migliore comprensione.

Demo1.java

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

Produzione

 Javatpoint 

Modificatore di accesso privato

È l'opposto del modificatore pubblico. Può essere specificato utilizzando il comando privato parola chiave seguita dal nome della classe (applicata solo alle classi nidificate) o dal nome del metodo o dal membro dati. Non possiamo utilizzare lo specificatore di accesso privato con le classi di livello superiore o interfacce . È possibile accedere alle variabili, ai metodi e alle classi dichiarate come private solo nella classe in cui sono dichiarate o ereditando le classi madri. È lo specificatore di accesso più limitato in Java. È la forma più alta di incapsulamento.

  • Non possiamo oltrepassare i metodi dichiarati come privati.
  • Se utilizziamo il modificatore private con il costruttore, evitiamo che venga sottoclassato.
  • Nasconde le classi dalle altre classi all'interno dello stesso pacchetto .

Usiamo lo specificatore di accesso privato in un programma Java per una migliore comprensione.

Nell'esempio seguente abbiamo dichiarato due classi: Demo1 e Demo2. Nella classe Demo1 abbiamo definito un metodo spettacolo() come privato. La classe Demo2 contiene il metodo main() in cui abbiamo creato un oggetto della classe Demo1. Successivamente, stiamo tentando di accedere al metodo privato della classe Demo1 dalla classe Demo2, ma non è possibile. Tuttavia, eseguiremo comunque il programma per vedere quale errore mostra.

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

Quando eseguiamo il programma sopra, mostra il seguente errore:

Java pubblico o privato

Differenza tra specificatore di accesso pubblico e privato in Java

La principale differenza tra i modificatori pubblici e privati ​​è la sua visibilità. Java classifica la visibilità per i membri della classe come segue:

  • Sottoclassi nello stesso pacchetto
  • Non sottoclassi nello stesso pacchetto
  • Sottoclassi in pacchetti diversi
  • Classi né nello stesso pacchetto né sottoclassi
Java pubblico o privato

Quale dovremmo usare?

Dovremmo utilizzare il modificatore di accesso pubblico se vogliamo rendere il metodo o la proprietà visibile da qualsiasi luogo, da altre classi e istanze dell'oggetto. Utilizzare il modificatore di accesso privato se si desidera rendere il metodo o la proprietà visibili solo nella propria classe. Evitare campi pubblici ad eccezione delle costanti.