Clone이란
원본 객체를 보호하기 위해 원본 객체와 같은 값을 가지는 새로운 객체를 생성해주는 것입니다.
Clone 하는 방법
클래스에 implemets Cloneable을 해줍니다.
ex)
public 클래스이름 implemets Cloneable {}
오버로딩으로 clone()를 쓰고 오류를 throw 해줍니다.
ex)
public 클래스이름 implemets Cloneable { @Override public 클래스이름 clone() throws CloneNotSupportedException {} }
그 메서드 안에 클래스이름 변수 = (클래스이름)super.clone();을 해줍니다.
ex)
public 클래스이름 implemets Cloneable { @Override public 클래스이름 clone() throws CloneNotSupportedException { 클래스이름 변수 = (클래스이름)super.clone(); } }
3번에서 쓴 변수를 return 해줍니다.
ex)
public 클래스이름 implemets Cloneable { @Override public 클래스이름 clone() throws CloneNotSupportedException { 클래스이름 변수 = (클래스이름)super.clone(); } return 변수; }
이렇게 써주고 throws를 했으므로 다른 클래스에서 clone할때 try catch를 해주면 됩니다.
전체 예시
ex)
public CloneTest implemets Cloneable { @Override public CloneTest clone() throws CloneNotSupportedException { CloneTest ct = (CloneTest)super.clone(); } return ct; }