Modificatori di accesso Java-Pubblico, privato, protetto e predefinito

postato in: Articles | 0

Devi aver visto parole chiave pubbliche, private e protette mentre pratichi programmi java, questi sono chiamati modificatori di accesso. Un modificatore di accesso limita l’accesso di una classe, costruttore, membro dati e metodo in un’altra classe. In java abbiamo quattro modificatori di accesso:
1. predefinito
2. privato
3. protetto
4. pubblico

Modificatore di accesso predefinito

Quando non menzioniamo alcun modificatore di accesso, si chiama modificatore di accesso predefinito., L’ambito di questo modificatore è limitato al solo pacchetto. Ciò significa che se abbiamo una classe con il modificatore di accesso predefinito in un pacchetto, solo le classi che si trovano in questo pacchetto possono accedere a questa classe. Nessun’altra classe al di fuori di questo pacchetto può accedere a questa classe. Allo stesso modo, se abbiamo un metodo predefinito o un membro dei dati in una classe, non sarebbe visibile nella classe di un altro pacchetto. Vediamo un esempio per capire questo:

Esempio di modificatore di accesso predefinito in Java

Per capire questo esempio, è necessario avere la conoscenza dei pacchetti in java.,

In questo esempio abbiamo due classi, classe di test sta tentando di accedere al metodo predefinito di classe Aggiunta, poiché classe Test appartiene a un pacchetto diverso, questo programma genererebbe errore di compilazione, perché l’ambito del modificatore predefinito è limitato allo stesso pacchetto in cui è dichiarato.
Aggiunta.java

Prova.java

Output:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: The method addTwoNumbers(int, int) from the type Addition is not visibleat xyzpackage.Test.main(Test.java:12)

Modificatore di accesso privato

L’ambito del modificatore privato è limitato alla sola classe.,

  1. I membri e i metodi di dati privati sono accessibili solo all’interno della classe
  2. La classe e l’interfaccia non possono essere dichiarati come privati
  3. Se una classe ha un costruttore privato, non è possibile creare l’oggetto di quella classe dall’esterno della classe.

Vediamo un esempio per capire questo:

Esempio di modificatore di accesso privato in java

Questo esempio genera un errore di compilazione perché stiamo cercando di accedere al membro dei dati privati e al metodo della classe ABC nell’esempio della classe. Il membro e il metodo dei dati privati sono accessibili solo all’interno della classe.,

Output:

Compile - time error

Modificatore di accesso protetto

Il membro e il metodo dei dati protetti sono accessibili solo dalle classi dello stesso pacchetto e dalle sottoclassi presenti in qualsiasi pacchetto. Si può anche dire che il modificatore di accesso protetto è simile al modificatore di accesso predefinito con un’eccezione che ha visibilità nelle sottoclassi.
Le classi non possono essere dichiarate protette. Questo modificatore di accesso viene generalmente utilizzato in una relazione padre-figlio.,

Esempio di modificatore di accesso protetto in Java

In questo esempio il Test di classe che è presente in un altro pacchetto è in grado di chiamare il metodoaddTwoNumbers(), che è dichiarato protetto. Questo perché la classe Test estende l’aggiunta di classe e il modificatore protetto consente l’accesso dei membri protetti nelle sottoclassi (in qualsiasi pacchetto).
Aggiunta.java

package abcpackage;public class Addition { protected int addTwoNumbers(int a, int b){return a+b; }}

Prova.java

Output:

33

Modificatore di accesso pubblico

I membri, i metodi e le classi dichiarati pubblici sono accessibili da qualsiasi luogo., Questo modificatore non pone alcuna restrizione sull’accesso.

esempio di modificatore di accesso pubblico in java

Prendiamo lo stesso esempio che abbiamo visto sopra, ma questa volta il metodo addTwoNumbers() ha un modificatore pubblico e class Test è in grado di accedere a questo metodo senza nemmeno estendere la classe Addition. Questo perché il modificatore pubblico ha visibilità ovunque.
Aggiunta.java

package abcpackage;public class Addition { public int addTwoNumbers(int a, int b){return a+b; }}

Prova.,java

Output:

101

Consente di vedere l’ambito di questi modificatori di accesso in forma tabulare:

L’ambito dei modificatori di accesso in forma tabulare

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *