Java Object 클래스[ toString(), hashCode(), equals() ]

yun yun·2021년 8월 3일
0

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;
  }
}

참고사이트

심화 공부를 위한 사이트

profile
같이 일 하고 싶은 개발자가 목표!

0개의 댓글