PDA

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


Dr_House
27-11-2005, 15.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, 00.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