I modificatori di accesso

In questo articolo vedremo quali sono i modificatori di accesso utilizzabili all’interno dei nostri programmi Java, i quali permettono di restringere la visibilità delle variabili, dei metodi e delle classi del nostro codice Java. In altre parole definiscono  a quali variabili o metodi si può accedere (chiameremo tali elementi col nome generico di membri) e/o quali classi si possono instanziare.

Innanzitutto in Java vengono definiti due livelli di accesso:

  • top-level o Class level: per la definizione delle classi possono essere applicati solo due modificatori alle definizioni cioè public e default (cioè senza nessun modificatore);
I modificatori a livello di classe

I modificatori a livello di classe

  • member level: per la definizione dei membri (variabili e metodi di una classe) possono essere applicati ben quattro modificatori  cioè  public, protected, default (cioè senza nessun modificatore) e private.
I modificatori a livello di membro

I modificatori a livello di membro

Vediamo nel dettaglio i quattro modificatori di accesso,  li elenchiamo in ordine di maggiore visibilità, cioè a partire da quello meno restrittivo:

  • public;
  • protected;
  • default (nessun modificatore);
  • private.

Il modificatore public applicato prima della definizione di una classe, metodo o variabile permette di modificare ed accedere alla componente da qualsiasi classe e sottoclasse e da qualsiasi package.

Il modificatore protected permette di poter accedere ad un metodo o una variabile da tutte le classi definite nello stesso package e dalle sottoclassi presenti in qualsiasi altro package (incluso ovviamente quello in cui è definito il componente).

Il modificatore default viene assegnato automaticamente dal compilatore quando nessuno degli altri modificatori è stato specificato, in altre parole tale modificatore si applica quando non specifichiamo niente prima della definizione dei nomi di classe, variabile o metodo. Esso permette di poter accedere aduna classe, metodo o variabile da qualsiasi classe e sottoclasse presente nello stesso package del componente in esame ma non da sottoclassi  definite in altri package (ed è questa la differenza rispetto al modificatore protected).

Il modificatore private permette di poter accedere ad un metodo o variabile solo da altri componenti definiti all’interno della stessa classe.

Infine resta da precisare che i modificatori private e protected possono essere applicate alla definizione di classe se queste vengono definite come nested class o inner class (queste ultime sono nested class definite senza utilizzare la parola chiave static), infatti tali classi possono essere assimilate come delle vere e proprie variabili di classe.

1 Stella2 Stelle3 Stelle4 Stelle5 Stelle (1 voti, media: 5,00 di 5)
Loading...
You can leave a response, or trackback from your own site.

Leave a Reply

*