반응형
두 객체를 동등 비교할때 사용하는 메소드
equals를 재정의하기 전에 같은 타입인지 먼저 확인해주어야 한다. (*instanceof 연산자)
package api.practice;
public class equals {
public String id;
public equals(String id) {
this.id = id;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof equals) {
equals member = (equals)obj;
if(id.equals(member.id)) {
return true;
}
}
return false;
}
}
먼저 id를 String으로 정의했고, equals의 id를 재정의했다.
그 후 Object의 obj (왜 이렇게 작성했는지 의문) 를 만들었고 equals의 memeber로 강제 타입변환한다. 그후 만약 equals 가 맞으면 true를 return 한다.
package api.practice;
public class equalstest {
public static void main(String[] args) {
equals obj1 = new equals("blue");
equals obj2 = new equals("yellow");
equals obj3 = new equals("black");
if(obj1.equals(obj2)) {
System.out.println("obj1 과 obj2는 동일합니다");
} else {
System.out.println("obj1 과 obj2는 동일하지 않습니다");
}
}
}
새로운 생성자를 생성한 뒤 if 문으로 equals를 실행시킨다.
obj1. equals(obj2)
▼console
obj1 과 obj2는 동일하지 않습니다반응형
'IT 공부 > JAVA' 카테고리의 다른 글
| [코딩테스트] Lv1.같은 숫자는 싫어 (0) | 2022.09.05 |
|---|---|
| [코딩테스트] Lv1. 신고결과 받기 (0) | 2022.08.29 |
| [예외]Try-catch-finally (0) | 2021.01.12 |
| [예외]NumberFormatException (0) | 2021.01.12 |
| [예외]arrayIndexOutofBoundsException (0) | 2021.01.11 |
댓글