Java에서 equals() 재정의

Lovey Arora 2023년10월12일
Java에서 equals() 재정의

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를 반환합니다. 이제 데이터 멤버를 비교할 수 있도록 개체를 컴플렉스로 ​​형변환합니다. 마지막으로 복잡한 클래스를 테스트하기 위해 드라이버 클래스를 만듭니다.

관련 문장 - Java Override