티스토리 뷰

반응형

1. 목적

 원본 객체의 필드값과 동일한 값을 가지는 새로운 객체를 생성하는 것이 목적

 객체 복제의 목적은 원본 객체를 안전하게 보호하기 위해서 이다.

 

 

2. 얕은 복제

 단순히 필드값을 복사해서 객체를 복제하는 것을 의미한다. 필드값만 복제하기 때문에 필드가 기본 타입일 경우 값 복   사가 일어나고, 필드가 참조타입일 경우에는 객체의 번지가 복사된다.

 

메소드 객체 복사를 위해서는 java.lang.Cloneable 인터페이스를 구현하고 있어야한다. 

반대로 인터페이스를 구현하지 않는다면 예외 처리를 반드시 설정해주어야 한다.

 

try{

Object obj = clone();

} catch(CloneNotSupportedException e){}

 

3. 깊은 복제

얕은 복제의 단점을 보완해주기 위해 사용된다. 즉, 참조객체까지도 보두 복제가 가능하다.

 

얕은 복제의 단점

 > 참조타입 필드는 번지만 복사

 > 참조객체를 변경할 경우 원본객체또한 변경된 객체를 가지게 됨

 

복제 후 참조객체의 데이터를 변경해도 원본 객체의 데이터는 변경되지 않는다.

 

 

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함