punlic class Ex03{
public static void main(String[] args){
Test3 t1 = new Test3();
t1.setName("홍길동");
t1.setAge(20);
Test3 t2 = t1; // t1, t2 : 동일한 영역을 참조.
System.out.println(t1 == t2);
t1.print();
t2.print();
Test3 tt = new Test3();
tt.setName("홍길동");
tt.setAge(20);
System.out.println(t1 == tt);
// Object clone() : 새로운 객체를 생성하여 필드 값을 복사(객체 복제)
Test3 t3 = (Test3) t1.clone();
System.out.println(t1 == t3);
t3.print();
}
}
class Test3 implements Cloneable { // Cloneable 인터페이스 구현
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void print() {
System.out.println(name+":"+age);
}
public Object clone() { // clone() 메솓, 재정의(override)
Object obj = null;
try {
obj = super.clone();
} catch (Exception e) {
}
return obj;
}
}
t1, t2 는 동일한 영역을 참조하기 때문에 t1 == t2 는 true
tt는 new로 객체를 새롭게 생성했기 때문에 t1 == tt 는 false
'쌍용강북교육센터 > 7월' 카테고리의 다른 글
0719_Ex05_Java API : Integer (0) | 2021.07.19 |
---|---|
0719_Ex04_Java API : Integer (0) | 2021.07.19 |
0719_Ex02_Java API : Object (0) | 2021.07.19 |
0719_Ex01_Java API : Math (0) | 2021.07.19 |
0716_Ex04_Calendar (0) | 2021.07.19 |