주제 정리

Object 객체 탐구

박상순 2021. 8. 7. 18:58

모든 클래스의 부모 클래스로서 자바에서 최상위에 클래스이다.

 

toString()

  • 모든 하위 클래스에서 메서드를 재정의 해야한다.
  • 호출하지 않아도 다른 곳에 쓰일 수 있다. → 디버그, 오류메세지 로깅 시 자동으로 호출 할 수 있다.
  • 간결하고 가독성이 좋은 형태로 정보를 반환시켜야 한다.
  • 객체의 주요 정보를 모두 반환하는 것이 좋다.

 

equals()

  • 주소 값을 비교하는 == 연산과는 다르게 두 대상의 값 자체를 비교한다.
  • 클래스는 call by reference이기 때문에 생성시 주소값이 부여되므로 같은 값을 부여하더라도 주소값이 다를 수 있어 버그가 발생할 수 있기 때문에 객체 내부의 값 자체를 비교하기 위해서 사용한다.

 

hashCode()

  • 객체의 주소값을 변환하여 생성한 객체 고유의 정수 값
  • String에서는 서로 다른 객체이더라도 문자열이 같으면 hashCode가 동일하다.
  • hashTable 사용시 equals로 두 객체의 값이 같고 hashCode의 값이 동일 할 때만 같은 값으로 취급하는 것이 효율이 더 좋아 진다.

 

clone()

  • 인스턴스를 복제하여 새로운 인스턴스를 생성하여 반환한다.
  • 필드 값만 복제하므로 필드 값이 배열이나 인스턴스면 정상적으로 복제가 불가능하다.
  • Override를 통한 재정의를 통하여 배열이나 인스턴스 또한 복제가 이루어지게 할 수 있다.
  • 데이터 보호를 이유로 Cloneable 인터페이스가 구현된 클래스의 인스턴스에서만 사용이 가능하다.
728x90

'주제 정리' 카테고리의 다른 글

[아키텍처]마이크로 서비스  (0) 2021.08.19
[JAVA] HashSet  (0) 2021.08.13
[JAVA] HashTable, HashMap  (0) 2021.08.12
디자인 패턴 23가지  (0) 2021.08.07
[JAVA] StringBuilder와 StringBuffer  (0) 2021.08.07