Java/Modificatori di accesso: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 25:
== I modificatori di accesso ==
 
I modificatori di accesso regolano la possibilita'possibilità di accedere ad una Classe, ad un metodo o ad un attributo, da parte di una Classe o di un metodo, esterno od interno alla Classe stessa.
In genere, solo le variabili di Classe, ma non e'è obbligatorio, hanno un modificatore che ne specifica la visibilita'visibilità, le variabili dichiarate all'interno dei metodi non hanno modificatori di visibilita'visibilità, daltraparted'altra parte esse sono visibili solo all'interno del metodo stesso.
 
Ecco una serie di dichiarazioni corrette, fatto salvo il contesto nel quale esse vengono dichiarate:
Riga 38:
</source>
 
Queste invece sono una serie di dichiarazioni che produrannoprodurranno una segnalazione di errore da parte del Compilatore:
 
<source lang="Java">
Riga 49:
=== private ===
 
<tt>private</tt> e'è il modificatore di accesso piu'più restrittivo. I metodi e gli attributi dichiarati <tt>private</tt>, non sono visibili ne usabili all'esterno della classe che li contiene.
 
Tuttavia è possibile accedervi dall'esterno mediante metodi di lettura e modifica dei valori: metodi "get" e "set". La possibilità di usare valori con il modificatore <tt>private</tt> è un punto importante della programmazione a oggetti.
 
In questo modo i valori <tt>private</tt> vengono incapsulati, rendendo impossibile il loro richiamo o modifica, a causa di disattenzione o casualità, da altre porzioni di codice (come potrebbe avvenire in una programmazione procedurale). Ovvero per leggerli o modificarli occorre implementare e chiamare appositamente i metodi get e set.
 
Dunque ove possibile bisogna sempre editare come <tt>private</tt> gli elementi del programma, è una indicazione forte ma non un obbligo.
 
Si veda [[Java/Esempi/Private|l'esempio di codice]] nella sezione "Esempi" del libro.
Riga 66:
 
Il modificatore <tt>default</tt> viene assegnato automaticamente dal compilatore solo quando nella scrittura del sorgente si omettono gli altri modificatori.
 
<tt>default</tt> indica che l'elemento è di accesso publico ma solo ed esclusivamente al package della classe dove è inserito, diversamente da <tt>public</tt> e <tt>protected</tt> dove è visibile anche in package esterni.
 
Si può dire che è leggermente più restrittivo di <tt>protected</tt>.
 
Riga 75:
 
Il modificatore <tt>protected</tt> può essere attribuito solo ai metodi e alle variabili interne alla classe e non può essere applicato alla classe stessa. I metodi e le variabili dichiarate come <tt>protected</tt> sono visibili unicamente dalle sottoclassi o classi derivate, in qualsiasi package queste si trovino. Se si vuole rendere visibili metodi e variabili esclusivamente alle sottoclassi di qualsiasi package, è perciò necessario dichiararli <tt>protected</tt>.
Si può dire che è leggermente più restrittivo di <tt>public</tt> .
 
=== public ===