Substituir equals() em Java

Lovey Arora 12 outubro 2023
Substituir equals() em Java

Em Java, Overriding é quando a classe filha ou a subclasse tem a mesma execução de método declarada na classe pai.

O método equals() compara duas strings. Se os dados de um objeto string forem iguais aos do outro, ele retorna o valor True, caso contrário, False. Quando substituímos o método equals(), é sempre recomendado substituir também o método hashtag().

Este tutorial demonstrará como substituir equals em Java.

Para verificar se os valores nos objetos são iguais ou não, usamos o método equals(). Podemos substituir esse método na classe para verificar se os dois objetos têm os mesmos dados ou não, já que as classes em Java são herdadas apenas das classes de objeto.

O @Override diz ao compilador sobre a sobrescrita durante o tempo de compilação.

Veja o código fornecido abaixo:

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 ");
    }
  }
}

Resultado:

Equal

No exemplo acima, a substituição é feita pelo método equals() para comparar dois objetos complexos com a ajuda da expressão booleana. Então, se o objeto for comparado consigo mesmo, ele retorna True. Em seguida, verificamos se o objeto é uma instância de complexo ou não e, portanto, retorna False. Agora, moldamos o objeto em complexo para que possamos comparar os membros dos dados. Finalmente, criamos uma classe de driver para testar a classe complexa.

Artigo relacionado - Java Override