Java에서 equals() 재정의
Lovey Arora
2023년10월12일
Java에서 Overriding은 하위 클래스 또는 하위 클래스가 상위 클래스에서 선언 된 것과 동일한 메서드 실행을 가질 때입니다.
equals()
메소드는 두 문자열을 비교합니다. 한 문자열 개체의 데이터가 다른 개체와 같으면 True 값을 반환하고 그렇지 않으면 False를 반환합니다. equals()
메서드를 재정의 할 때 항상hashtag()
메서드도 재정의하는 것이 좋습니다.
이 자습서는 Java에서 같음을 재정의하는 방법을 보여줍니다.
객체의 값이 같은지 확인하기 위해equals()
메소드를 사용합니다. Java의 클래스는 객체 클래스에서만 상속되므로 클래스에서이 메서드를 재정 의하여 두 객체의 데이터가 동일한 지 여부를 확인할 수 있습니다.
@Override
는 컴파일 시간 동안 컴파일러에게 재정의를 알려줍니다.
아래 주어진 코드를 참조하십시오.
class Complex {
private double ab, cd;
public Complex(double ab, double cd) {
this.ab = ab;
this.cd = cd;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof Complex)) {
return false;
}
Complex c = (Complex) o;
return Double.compare(ab, c.ab) == 0 && Double.compare(cd, c.cd) == 0;
}
}
public class Main {
public static void main(String[] args) {
Complex c1 = new Complex(12, 13);
Complex c2 = new Complex(12, 13);
if (c1.equals(c2)) {
System.out.println("Equal ");
} else {
System.out.println("Not Equal ");
}
}
}
출력:
Equal
위의 예에서 재정의는equals()
메소드에 의해 수행되어 부울 표현식의 도움으로 두 개의 복잡한 객체를 비교합니다. 그런 다음 객체가 자신과 비교되면 True를 반환합니다. 그런 다음 개체가 complex의 인스턴스인지 여부를 확인하여 False를 반환합니다. 이제 데이터 멤버를 비교할 수 있도록 개체를 컴플렉스로 형변환합니다. 마지막으로 복잡한 클래스를 테스트하기 위해 드라이버 클래스를 만듭니다.