Replies: 6 comments
-
예제 코드Animal dog = new Dog();
System.out.println(dog instanceof Animal); // true (상속 관계 반영)
System.out.println(dog.getClass() == Animal.class); // false (상속 관게 반영 X) |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
@EqualsAndHashCode
@AllArgsConstructor
public class BookDto {
private Long id;
private String title;
private String description;
} |
Beta Was this translation helpful? Give feedback.
-
Intro
객체의 참조(reference)가 동일한지
를 확인하기 위한 equals 메서드가 존재한다.=>
값 비교
가 필요한데, 상위 클래스의 상위 클래스의 equals 메서드가 참조 값을 비교하도록 정의되어 있을 경우equals 메서드를 재정의
하여 사용하면 된다!equals 메서드를 재정의하는 방법
1. == 연산자를 사용해, 자기 자신의 참조인지 확인한다.
2. instanceof로 입력이 올바른지 확인한다.
3. 입력을 올바른 타입으로 형변환한다.
4. 입력 객체와 자기 자신의 대응되는 '핵심' 필드들이 모두 일치하는지 하나씩 검사한다.
전형적인 equals 메서드
cf. 예제 코드 : PhoneNumber.java
equals 메서드를 재정의할 때 주의할 점
1. equals 메서드를 재정의할 때는 hashCode도 반드시 재정의하자.
2. Object 외의 타입을 매개변수로 받는 equals 메서드는 선언하지 말자.
String 클래스에서의 equals()와 ==
String 클래스에서의
equals 메서드
의 경우 오버라이딩되어, equals 메서드는 값 비교,==
연산자는 참조 값을 비교한다.Beta Was this translation helpful? Give feedback.
All reactions