Q1. equals() 메소드의 기능은 무엇인가?
A1. equals() 메소드는 두 객체를 비교하는 기능을 합니다.
두 객체의 해시코드 값을 비교해서 같은 true를, 다르면 false를 반환합니다.
Q2. hashcode() 메소드의 기능은 무엇인가?
A2. hashcode() 메소드는 객체의 메모리 주소를 생성하는 메소드입니다.
Q3. toString() 메소드의 기능은 무엇인가?
A3. toString() 메소드는 객체의 클래스 명과 16진수 해시코드 값을 반환하는 메소드입니다.
Q4. 왜 equals() 메소드를 오버라이딩해서 재정의 해야 하는가?
A4. equals() 메소드는 두 객체의 해시코드 값을 비교하는데 이를 물리적 비교라고 합니다.
그런데, equals() 메소드를 통해 두 객체를 논리적으로 비교하고 싶으면
equals() 메소드를 오버라이딩해서 재정의해야 합니다.
두 객체를 논리적으로 비교한다는 것은 두 객체의 속성 값이 같은지 비교하는 것을 의미합니다.
Q5. String 클래스에서 equals() 메소드를 재정의함으로써 발생하는 결과는 무엇인가?
A5. 두 String 객체의 값이 같으면 true를 반환하도록 합니다.
Q6. 왜 equals() 메소드를 재정의하면 hashcode() 메소드도 재정의해야 하는가?
A6. equals() 메소드를 통해 두 객체를 논리적으로 비교한다면,
마찬가지로, 두 객체가 논리적으로 같을 때, 두 객체의 hashcode() 메소드 값도 같을 수 있도록
오버라이딩해서 재정의 해야 합니다.
참고
- Do it 자바 프로그래밍 입문
- Q1~6 5.13
- A1~6 5.14
'Java' 카테고리의 다른 글
제네릭 (0) | 2022.05.13 |
---|---|
Wrapper 클래스 (1) | 2022.05.13 |
String 클래스 (1) | 2022.05.13 |
비트 연산자 (1) | 2022.04.30 |
JVM (0) | 2022.04.12 |