In questo articolo vedremo quali sono i modificatori di accesso utilizzabili all’interno dei nostri programmi Java, i quali permettono di restringere
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);
- 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.
- 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.
COMMENTS
Molto interessante, non conoscevo questa possibilità
Spiegazione molto interessante, ancora valida?