Utilizando interface Cloneable para poder clonar um objeto e trabalhar com ele sem problemas.
[code]public class TheClone implements Cloneable {
private String name;
private int year;
public TheClone() {
}
public Object clone() {
try {
return super.clone();
} catch (CloneNotSupportedException e) {
return null;
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
}
[/code]
Criando a classe de inicialização do programa
public class main {
public static void main(String[] args) {
// Criando um objeto
TheClone original = new TheClone();
original.setName("Sorriso");
original.setYear(20);
// Efetuando seu clone
TheClone copiaOriginal = (TheClone)original.clone();
// Printando os valores clonados
System.out.println("O clone do original é: " + copiaOriginal.getName());
System.out.println("Sua idade é: " + copiaOriginal.getYear());
// Alterando a copia
copiaOriginal.setName("Mudou o nome");
// Printando o original para verificar se com a alteração
// da cópia ele não foi alterado
System.out.println("O nome do original é: " + original.getName());
// Printando o nome da cópia alterado
System.out.println("O clone do original é: " + copiaOriginal.getName());
}
}
Exemplo de como utilizar o clone, simples.
E o objeto clonado não possui mais referencias ao seu clone pois após o clone serão coisas distintas.
Flw, espero ter ajudado.