Il mio libro di Java afferma che i riferimenti a oggetto vengono copiati per valore.
Per esempio nel seguente statement
conto1.trasferisciDenaro(ContoBancario altroConto);
altroConto è passato per valore
Ok sono d'accordo, ma poi non capisco il meccanismo successivo, il libro continua a dire:
"un metodo Java può aggiornare lo stato di un oggetto ma non può sostituire il contenuto di un riferimento a oggetto"
Praticamente se il metodo trasferisciDenaro fosse fatto cosi:
non capisco come fa a funzionare la prima istruzione, come fa a modificare altroConto se gliel'ho passato per valore e non per riferimento?Codice PHP:public void trasferisciDenaro(ContoBancario altroConto, double denaro)
{
altroConto.versaDenaro(denaro); //questa istruzione è ok
altroConto = new ContoBancario(); //non funziona
...
}

Rispondi quotando