[스프린터스] 자바의 최상위 부모클래스

MSK·2022년 6월 23일
0

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
  • 재정의(overriding) 가능한 메서드

finalize

  • 객체가 소멸될 때 호출되기로 약속된 메소드
  • 리소스 누수(leak)를 방지하기 위해 자바 가상 머신(Java Virtual Machine)이 실행하는 가비지 컬렉션이 수행될 때 더 이상 사용하지 않는 자원에 대한 정리 작업을 진행하기 위해 자동으로 호출되는 종료자 메서드
  • 많은 자바의 전문가들이 이 메소드의 사용을 만류
  • 정확하게 어떤 기능을 수행해야하는지 알고 있을 때만 사용할 것을 권장

참고자료

profile
여긴어디나는누구

0개의 댓글