name과 age값을 가진 Person을 복제해보자.
// Cloneable 인터페이스를 구현한 Person 클래스
class Person implements Cloneable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// Getter 및 Setter 메서드 생략
// clone() 메서드 재정의
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
타 클래스에서 Person을 만들 수 있음과 더불어
clone메서드를 사용하여 객체를 볼사할 수 있다.
public class CloneExample {
public static void main(String[] args) {
try {
// 원본 객체 생성
Person originalPerson = new Person("John", 25);
// clone() 메서드를 사용하여 객체 복제
Person clonedPerson = (Person) originalPerson.clone();
// 복제된 객체의 내용 확인
System.out.println("Original Person: " + originalPerson.getName() + ", " + originalPerson.getAge());
System.out.println("Cloned Person: " + clonedPerson.getName() + ", " + clonedPerson.getAge());
// 원본 객체와 복제 객체는 서로 다른 객체이지만 내용이 동일합니다.
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
}
완료
Original Person: John, 25
Cloned Person: John, 25
'JAVA' 카테고리의 다른 글
문자열배열을 합칠 수 있는 join() (0) | 2023.12.08 |
---|---|
java.lang패키지 : String 클래스 (0) | 2023.12.08 |
예외처리: chained exception 예외와 예외를 연결하다 (0) | 2023.12.07 |
예외처리: exception re-throwing 예외 되던지기 (0) | 2023.12.07 |
예외처리: extends Exception 사용자정의 예외 만들기 (0) | 2023.12.07 |