ePrometeusCorsoJavaJava
testi articoli
Testi Articoli  Download
Home | Basi | Espressioni | Comandi | Classi | Ereditarieta | Eccezioni | Thread | Utilita | 
CorsoJava è ora Video! Free for all!
Clicca Qui!

Basi
Introduzione
Tecnologia
Piattaforma
JDK
Installazione
PATH
Hello
Cosa fare
Compilazione
Esecuzione
Sintassi
Commenti
Espressioni
Comandi
Dichiarazioni
Metodi
Classi
Tipi di dato
Primitivi
Classi
Confronto
Assegnamento

<<< Assegnamento
Primitivi
a = b;
L'assegnamento ha copiato il valore


a = 3; b == 2
b non è stato modificato


Classi
t = s;
L'assegnamento ha copiato il riferimento


t.push(3); s.pop()==3
s è stato modificato operando su t


Più importante è considerare quello che avviene quando si copiano i valori contenuti nelle variabili. Nella prima riga a sinistra vediamo cosa succede, quando si assegna il valore di una variabile (che contiene un tipo primitivo) ad un altra variabile. Il valore viene fisicamente copiato dalla prima nella seconda. Invece a destra vediamo cosa avviene quando si assegna il valore di una variabile che contiene un riferimento ad un oggetto. In pratica non viene copiato oggetto ma solamente su riferimento con il risultato che avremo 2 variabili che si riferiscono allo stesso oggetto.

L'effetto di questo fatto viene illustrato nella seconda riga. A sinistra notiamo come assegnare un valore ad una variabile non ha alcun impatto su quello che succede all'altra variabile. Con l'assegnamento è stata fatta una copia, e i due tipi primitivi sono ormai cose separate, per di più interamente contenute dentro le loro scatole, che sono le variabili.

Invece con i oggetti si ha un fenomeno completamente diverso: l'oggetto in realtà è uno solo, e facendo assegnamento si è copiato solamente il puntatore all'oggetto. Di conseguenza fare una modifica l'oggetto invocando un metodo su una variabile comporta che questa di modifica sarà visibile anche all'oggetto, anche quando viene acceduto usando l'altra variabile.

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com