Object Class
- 모든 class의 최상위 class로 모든 class는 object class에서 상속을 받음
- 따라서 모든 class는 object class의 메서드를 사용할 수 있고, 일부를 overriding 할 수 있음
toString()
- 객체를 문자로 표현하는 메서드
- overriding(재정의)하여 사용할 수 있는 메서드
public String toString(){
return "left : " + this.left + ", right : "+ this.right;
}
- toString을 직접 호출하지 않아도 어떤 객체를 System.out.print로 호출하면 자동으로 toString이 호출되도록 약속
출력
System.out.println(c1);
System.out.println(c1.toString());
결과
left : 10, right : 20
left : 10, right : 20
equals()
- 두 객체의 동일함을 논리적으로 재정의하는 메서드
출력
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
결과
false
true
- ==은 주소값이 동일한지 물어보는 것
- equals()는 물리적으로 다른 메모리에 위치한 객체라도 논리적으로 동일함을 확인
clone()
- 객체의 복사본을 만드는 메서드
- 객체지향 프로그래밍의 정보은닉에 위배되는 가능성이 있으므로 복체할 객체는 clonable 인터페이스를 명시
class Student implements Cloneable
출력
Student s2 = (Student)s1.clone();
System.out.println(s1.name);
System.out.println(s2.name);
결과
egoing
egoing
finalize
- 객체가 소멸될 때 호출되기로 약속된 메소드
- 리소스 누수(leak)를 방지하기 위해 자바 가상 머신(Java Virtual Machine)이 실행하는 가비지 컬렉션이 수행될 때 더 이상 사용하지 않는 자원에 대한 정리 작업을 진행하기 위해
자동으로
호출되는 종료자 메서드
- 많은 자바의 전문가들이 이 메소드의 사용을 만류
- 정확하게 어떤 기능을 수행해야하는지 알고 있을 때만 사용할 것을 권장
참고자료