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

+ Recent posts