È corretto utilizzare l’operatore di assegnamento per creare una copia indipendente di un oggetto?

Utente HTML.it
chiede

È corretto utilizzare l’operatore di assegnamento per creare una copia indipendente di un oggetto?

Redazione HTML.it
risponde

No. Utilizzare l’operatore di assegnamento tra oggetti equivale ad assegnare ad una variabile lo stesso reference cui punta già un’altra variabile; non viene pertanto, in tal modo, allocata altra memoria per conservare un nuovo oggetto. In altre parole se si eseguono le seguenti istruzioni:

MyClass a = new MyClass();
MyClass b = a;

avremo allocato memoria soltanto per una istanza di tipo MyClass e sia la variabile reference a che la variabile reference b punteranno a tale istanza. La conseguenza di ciò sarà che ogni modifica dell’oggetto referenziato da a e b sarà percepibile sempre su entrambe le variabili.