상세 컨텐츠

본문 제목

[Java]인스턴스 복사 : clone 메소드

JAVA Language

by mobile 2012. 9. 15. 02:48

본문

반응형

■ 인스턴스 복사(복제) : clone 메소드

Object 클래스의 인스턴스의 복사를 위한 다음 메소드가 정의 되어 있다.


protected Object clone() throws CloneNotSupportException


그리고 이 메소드가 호출되면, 이 메소드가 호출된 인스턴스의 복사본이 생성되고, 이 복사본의 참조 값이 반환 된다. 단 다음의 조건을 만족해야 이 메소드를 호출할 수 있다.

"Cloneable 인터페이스를 구현해야 합니다."

즉 Cloneable 인터페이스를 구현하고 있는 클래스의 인스턴스만이 clone 메소드의 호출이 가능하다. 만약에 Cloneable 인터페이스를 구현하지 않는 클래스의 인스턴스에서 clone 메소드가 호출되면 위의 메소드 선언에서 보이듯이 CloneNotSupportedException 이라는 예외가 발생한다.


▶ 예제

class Point implements Cloneable {

private int xPos;

private int yPos;

public Point(int x, int y) {

xPos = x;

yPos = y;

}

public void showPosition() {

System.out.printf("[%d, %d]", xPos, yPos);

System.out.println("");

}

public Object clone() throws CloneNotSupportedException {

return super.clone();

}

}


public class InstanceCloning {


public static void main(String[] args) {

Point org = new Point(4,3);

Point cpy;

try {

cpy = (Point)org.clone();

org.showPosition();

cpy.showPosition();

} catch(CloneNotSupportedException e) {

e.printStackTrace();

}

}

}


[결과]

[4, 3]

[4, 3]


반응형

관련글 더보기

댓글 영역