Object class
- java.lang.Object
- 모든 클래스의 최상위 클래스
- 주로 clone(), equals(), hashCode(), toString()을 흔히 override해서 사용합니다.
1. toString()
- 기본 동작 : 객체의 해시코드 출력
— getClass().getName() + ‘@’ + Integer.toHexString(hashCode())- override 목적 : 객체의 정보를 문자열 형태로 표현하고자 할 때
2. equals()
- 기본 동작 : '=='연산 결과 반환
- override 목적 : 물리적으로 다른 메모리에 위치하는 객체여도 논리적으로 동일함을 구현하기 위해
3. hashCode()
- 기본 동작 : JVM이 부여한 코드값. 인스턴스가 저장된 가상머신의 조수를 10진수로 반환
- override 목적 : 두 개의 서로 다른 메모리에 위치한 객체가 동일성을 갖기 위해
4. override 예시
public class Info { int id; String name; public Info(int id, String name) { this.id = id; this.name = name; } @Override public String toString(){ return "Info{"+ "id='" +id+'\''+ ", name='"+name+'\''+ '}'; } @Override public boolean equals(Object o) { if(o == this) return true; if(!(o instanceof Info)) { return false } Info info = (Info) o; return info.id==id && info.name.equels(name); } @Override public int hashcode() { int result == 17; result = 31 * result + id; result = 31 * result + name.hashCode(); return result; } }
참고사이트
심화 공부를 위한 사이트