Quali sono i modificatori di accesso in Java

6 ott 2022 2 min di lettura
Quali sono i modificatori di accesso in Java
Indice dei contenuti

Introduzione

Un modificatore di accesso è un tipo speciale di dichiarazione di variabile che controlla come e dove altro codice può utilizzare la classe, la variabile o il metodo dichiarati. Questo articolo spiegherà cosa sono i modificatori di accesso e i tre diversi livelli di visibilità per classi, metodi e variabili con alcuni esempi pratici.

Comprendere l'ambito del codice è essenziale per scrivere programmi leggibili e gestibili. I modificatori di accesso sono un modo per raggiungere questo obiettivo. Dicono agli altri utenti del tuo codice come vuoi che interagiscano con metodi o variabili specifici. Se non conosci la programmazione Java, questi concetti possono sembrare confusi a prima vista; tuttavia, una volta compresi, diventano molto più chiari. Continua a leggere per saperne di più sui modificatori di accesso in Java.

Modificatori di accesso in Java

I modificatori di accesso sono parole chiave speciali che consentono di specificare come altro codice può interagire con metodi o variabili specifici all'interno delle classi. Come molti concetti di programmazione, i modificatori di accesso sono semplici in pratica ma all'inizio possono sembrare confusi. Una volta che li comprendi, possono aiutarti a rendere il tuo codice più leggibile e gestibile.

Esistono quattro diversi tipi di modificatori di accesso in Java:

  • Privato: un membro privato è accessibile nell'ambito della classe.
  • Predefinito: un membro senza modificatore di accesso è anche noto come package-private . Che è accessibile solo all'interno delle classi nello stesso pacchetto.
  • Protetto: un membro protetto è accessibile all'interno di tutte le classi dello stesso pacchetto e delle sottoclassi degli altri pacchetti.
  • Pubblico: un membro pubblico è accessibile ovunque.

Modificatore di accesso privato

Un membro di accesso privato è accessibile all'interno della classe dichiarata. Si verificherà un errore in fase di compilazione quando un'altra classe tenterà di accedervi.

Capiamo con un esempio: creata una classe denominata “One”, e dichiarare una variabile privata “i” con un valore di default. Ora crea un metodo showData() con accesso predefinito nella stessa classe che stampa il valore della variabile.

Ora crea un'altra classe "Noviello" con il metodo main(). Crea un oggetto di classe One e prova a stampare la variabile “i”. Poiché la variabile "i" è dichiarata privata, il compilatore java eseguirà un errore. Commenta la riga precedente e quindi chiama il metodo showData. Questo stamperà correttamente il valore di "i" poiché anche il metodo è dichiarato nella stessa classe:

class One{
   private int i = 10;
   void showData(){
        System.out.println(i);
   }
}
 
class Noviello{
 
   public static void main(String args[]){
      One obj = new One();
      System.out.println(obj.i);  //Compilation error
      // Comment above line to test the next line code
      obj.showData();   //Successfully run
   }
}

Conclusione

La principale differenza tra ogni livello di visibilità è chi può accedervi: – pubblico – tutti, privato – solo la classe che contiene la variabile/metodo, protetta – la classe che contiene la variabile/metodo e le eventuali classi da essa derivate La visibilità del classe, metodo o variabile determina se e come altri metodi o classi possono interagire con esso. Questo si chiama incapsulamento ed è uno dei capisaldi della programmazione orientata agli oggetti. E ora che sai cosa sono i modificatori di accesso e come funzionano, puoi usarli nel tuo codice per renderlo più leggibile e gestibile.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.