태그: Cloneable 인터페이스

출간일 2016년 11월 28일

판매가 2000원

형태 ebook

학습에 도움이 되시면 ebook을 구입하여 소장하시면 감사하겠습니다.

언제나 휴일 출판사의 수익금의 대부분은 아프리카에 기부하고 있습니다.


Java에서는 개체 자신을 복제하는 메서드를 제공할 때 Cloneable 인터페이스를 기반으로 구현 클래스를 정의하는 것을 권고하고 있습니다.

 

다음 예제는 유일한 번호를 멤버로 갖고 변경 가능한 이름을 멤버로 갖는 Student 클래스를 Cloneable 인터페이스를 기반으로 구현 클래스 형태로 정의한 예제입니다.

 

코드를 살펴보면 정적 멤버로 가장 최근에 부여한 학생 번호를 기억하는 last_snum을 캡슐화하였고 학생의 번호 snum은 final 키워드를 명시하여 값을 변경하지 못하게 캡슐화하였습니다. 그리고 변경 가능한 이름은 name 이름으로 캡슐화하였습니다.

 

생성자에서는 이름을 입력인자로 받으며 last_snum을 1 증가한 후에 snum에 설정하여 생성합니다. 물론 이름은 인자로 전달받은 값으로 설정합니다.

 

그리고 clone 메서드에서는 자신의 이름을 입력 인자로 학생 개체를 복제한 후에 반환합니다.

 

이처럼 구현하면 학생 번호는 생성하는 순서에 맞게 배정하면서 이름은 같은 개체를 생성할 수 있습니다.

다음은 앞에서 설명한 부분적인 멤버를 복재하는 clone 메서드 예제 코드입니다.

실행 결과