PDA

Visualizza versione completa : [java] Sovrascrivere Clone [OK]


Dr_House
27-11-2005, 16.03.48
Salve, ho un piccolo dubbio riguardo a Clone.
Avrei ragione di credere che String possegga il proprio metodo Clone, ma questo è stato messo in dubio da un programmatore che reputo più esperto di me quindi vorrei cercare dei chiarimenti:

Scrivo un codice di esempio:

class Attivita{
String nome;
int durata;
...
...
...
...
vari metodi
...
...
...

public Object Clone(){
try[
Attivita at = (Attivita)super.clone();
at.nome = nome;
at.durata = durata;
return at;
}
catch(CloneNotSupportedException e){
return null;
}
}
}

Io sostengo che questa non è una copia profonda in quanto la riga

at.nome=nome;

copia l'indirizzo dell'oggetto nome non il valore in esso contenuto.

lui sostiene che invece ritorna una copia profonda in quanto non vi è side effect sull'oggetto puntato da nome

Chi dei dueha ragione?

Grazie :)

Dr_House
29-11-2005, 01.40.57
Ok ho capito i due errori che ho commesso

in primis nel metodo su scritto ho dimenticato di scrivere

class Attivita implements Clonable{

in secondo luogo la copia profonda va fatta solo con gli oggetti non va fatta ne con i valori ne tantomeno con le stringhe.

Me tapino