Vediamo se ho capito anche il resto. Torniamo all'esempio che ho inserito nel post #5.
Quindi con
è come se dicessi "prendi la variabile dataDiNascita che contiene l'indirizzo di memoria dove si trova l'oggetto e che quindi contiene i campi giorno, mese e anno con già i valori all'interno inseriti nelle righe precedenti".codice:ogg.cambiaReference(dataDiNascita)
Tra l'altro il senso del metodo cambiaReference è appunto quello di cambiare il valore (forse sarebbe corretto dire l'indirizzo di memoria) di ogg perchè fino a quel momento ogg è una variabile che contiene l'indirizzo di una locazione di memoria diversa da dataDiNascita visto che sono state fatte due istanziazioni differenti nelle prime due righe:
codice:CiProvoConIReference ogg = new CiProvoConIReference(); Data dataDiNascita = new Data();
successivamente con il blocco di codice
è come se dicessi "lascia perdere quella locazione di memoria, crea un nuovo oggetto in modo che la variabile ogg non contenga l'indirizzo di memoria dove si trova dataDiNascita ma l'indirizzo di memoria dove si trova un nuovo oggetto che è inizializzato con valori di default". Per questa ragione dataDiNascita contiene ancora i valori inseriti in precedenza.codice:public class CiProvoConIReference { public void cambiaReference(Data data) { data = new Data(); } }
E' corretto?

Rispondi quotando
