Sei sulla pagina 1di 2

Livelli di visibilit

Di una classe
<specificatore accesso> class <NomeClasse> Lo specificatore daccesso pu essere indicato, utilizzando la parola chiave public, o non indicato.

Una classe public pu essere utilizzata da qualsiasi classe, anche al di fuori del package dove stata definita. Se lo specificatore daccesso non indicato, la classe pu essere usata ovunque, allinterno del package in cui definita (livello di visibilit friendly).

Limitazioni: 1. Pu esistere una sola classe public per ogni file (compilation unit). Ogni compilation unit ha una singola interfaccia pubblica rappresentata dalla classe public. 2. Il nome del file deve coincidere con quello della classe pubblica. 3. Una classe non pu essere dichiarata con gli specificatori private e protected, a meno che si tratti di una classe interna (inner class) ossia una classe dichiarata all'interno di un'altra. 4. Se si desidera rendere una classe privata, basta dichiarare come privati tutti i costruttori e definire un metodo statico, che richiama il costruttore, per un utilizzo privato della classe. Per esempio
public class Classe { private ClassePrivata() {.....} // Metodo statico che permette di istanziare la classe public static ClassePrivata creaClassePrivata() { return new ClassePrivata(); } }

I metodi come creaClassePrivata, che creano oggetti, sono detti metodi factory.

Di un attributo
<specificatore accesso> <tipo> <nome attributo>; Lo specificatore daccesso pu essere indicato utilizzando le parole chiave public, private, protected, o non indicato (friendly).

Un attributo public utilizzabile da qualsiasi classe, anche al di fuori del package di definizione. Un attributo private accessibile solo allinterno della classe nella quale definito.

Bocchi Cinzia 10/10/2011

Un attributo protected utilizzabile dalle classi che appartengono allo stesso package o dalle sottoclassi della classe in cui definito, anche se queste appartengono ad altri package. Un attributo friendly utilizzabile da tutte le classi dello stesso package.

Di un metodo
<specificatore accesso> <tipo> <nomeMetodo>(<parametri>) Lo specificatore daccesso pu essere indicato utilizzando le parole chiave public, private, protected, o non indicato (friendly). Laccesso segue le stesse regole degli attributi. TABELLA RIASSUNTIVA Accessibile a stessa classe classi dello stesso package sottoclasse in differente package differente package non sottoclasse public SI SI SI SI protected SI SI SI NO friendly SI SI NO NO private SI NO NO NO

Quest'opera stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

Bocchi Cinzia 10/10/2011