모든 클래스의 부모 클래스로서 자바에서 최상위에 클래스이다.
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 |