Clone()Backend/java2018. 8. 14. 19:16
Table of Contents
반응형
Clone()
1. 객체 자신을 복제(clone)해서 새로운 객체를 생성하는 메서드
2. Cloneable인터페이스를 구현한 클래스의 인스턴스만 복제할 수 있다.
3. Object클래스에 정의된 clone()은 인스턴스변수의 값만을 복제한다.
4. 인스턴스변수가 참조형일 때 , 참조하는 객체도 복제되게 오버라이딩해야한다.
package Practice;public class Examclone implements Cloneable// Cloneable 인터페이스를 구현한 클래스에서만 clone을 호출할 수 있다.// 만약 이 인터페이스를 구현해 놓지 않고 Clone을 호출하면 예외처리가 발생한다.{int x;int y;Examclone(int x, int y) {this.x = x;this.y = y;}@Overridepublic String toString() {return "Examclone [x=" + x + ", y=" + y + "]";}public Object clone() {Object obj = null;try {obj = super.clone();} catch (CloneNotSupportedException e) {}// Clone() 메서드에는 CloneNotSupportedException이 선언되어 있으므로 Clone메서드 사용시// try-catch문을 사용해야 한다.return obj;}}
클래스 하나를 더 만들어서 확인을 해보자.
package Practice;public class CloneEx1 {public static void main(String [] args) {Examclone original = new Examclone(3,5); // 클래스의 인스턴스를 하나 생성한다.Examclone copy = (Examclone)original.clone();System.out.println(original);System.out.println(copy); // 결과의 값이 original과 같은 것을 확인할 수 있다.}}
결과값
Examclone [x=3, y=5]
Examclone [x=3, y=5]
반응형
'Backend > java' 카테고리의 다른 글
String클래스의 특징 (0) | 2018.08.14 |
---|---|
getclass() (0) | 2018.08.14 |
toString() (0) | 2018.08.14 |
HashCode() (0) | 2018.08.14 |
Equals란 무엇인가. (0) | 2018.08.14 |
@IT grow. :: IT grow.
#IT #먹방 #전자기기 #일상
#개발 #일상