clone()
- clone()의 기능
-> 메모리를 복사하는 메서드
-> protected native Object clone() throws CloneNotSupportedException
-> 객체는 참조를 기본으로 함.
clone() 의 사용 방법(1)
- 아들 클래스에서 재정의 해서 사용
- Cloneable interface를 구현
- Cloneable interface : 표시 인터페이스(구현할 메서드 없음)
==========================================================================================================
class FirstClone implements Cloneable{
public int count = 0;
public FirstClone(int count) {
// TODO Auto-generated constructor stub
this.count = count;
}
public Object clone() throws CloneNotSupportedException{
return super.clone();
}
}
public class FirstCloneTest {
public static void main(String[] args) throws CloneNotSupportedException {
FirstClone fc1 = new FirstClone(22);
FirstClone fc2 = (FirstClone)fc1.clone();
System.out.println("fc1 hashCode : " + fc1.hashCode() + ", count의 값 : " + fc1.count);
System.out.println("fc2 hashCode : " + fc2.hashCode() + ", count의 값 : " + fc2.count);
}
}
Clone()의 사용 방법(2)
- 이미 재정의 되어 있는 clone()메서드를 사용
- Vector, HashTable, array 등 저장 기능이 있는 객체
- Sun사에서 이미 재정의 해둠
- 일반 메서드처럼 사용
===============================================================================================================
import java.util.Vector;
public class SecondCloneTest {
public static void main(String[] args) {
Vector v1 = new Vector();
v1.addElement(new Integer(3));
v1.addElement("javaok");
Vector v2 = new Vector();
v2.addElement("복사본입니다.");
System.out.println(v1);
System.out.println(v2);
}
}
'프로그래밍 정리 > 자바' 카테고리의 다른 글
getClass() (0) | 2013.07.11 |
---|---|
wait(), notify(), notifyAll() (0) | 2013.07.11 |
finalize() (0) | 2013.07.11 |
hashCode() (0) | 2013.07.11 |
toString() (0) | 2013.07.11 |