Java equals(), hashCode(), toString()
by 볼빵빵오춘기equals(Object obj) 의 오버라이딩
인스턴스 변수(iv)의 값을 비교하도록 equals()를 오버라이딩해야 한다.
예제 코드
public class Ex8_4 {
public static void main(String[] args) {
Person p1 = new Person(123L);
Person p2 = new Person(123L);
if(p1.equals(p2))
System.out.println("p1 == p2 ");
else
System.out.println("p1 != p2 ");
}
}
class Person{
long id;
public boolean equals(Object obj) {
if(obj instanceof Person)
return id == ((Person) obj).id;
else
return false;
}
Person(long id){
this.id = id;
}
}
hashCode()
- 객체의 해시코드(hash code)를 반환하는 메서드이다.
- Object클래스의 hashCode()는 객체의 주소를 int로 변환해서 반환한다.
- native method이다.
즉, OS의 메서드(C언어기반), JNI(자바와 자바가 아닌 언어가 서로 호출해서 사용할 수 있는 기술)이다. - equals()를 오버라이딩하면, hashCode()도 오버라이딩해야 한다.(equals()의 결과가 true인 두 객체의 해시코드는 같아야 하기 때문이다.)
- System.identityHashCode(Object obj) 는 Object클래스의 hashCode()와 동일하다.
toString()
객체를 문자열(String)으로 변환하기 위한 메서드
'👩🏻💻 About 프로그래밍 > Java' 카테고리의 다른 글
Java String 생성자 (1) | 2023.12.01 |
---|---|
Java String 클래스, 문자열 비교, 빈 문자열 (0) | 2023.12.01 |
Java Object클래스, Object클래스 메서드 (1) | 2023.12.01 |
Java 연결된 예외(chained exception) (0) | 2023.12.01 |
Java 사용자 정의 예외 만들기, 예외 던지기 (0) | 2023.12.01 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기