Anular equals() en Java

Lovey Arora 12 octubre 2023
Anular equals() en Java

En Java, Overriding es cuando la clase secundaria o la subclase tiene la misma ejecución de método que la declarada en la clase principal.

El método equals() compara dos cadenas. Si los datos de un objeto de cadena son los mismos que los del otro, devuelve un valor verdadero en caso contrario, falso. Cuando anulamos el método equals(), siempre se recomienda anular también el método hashtag().

Este tutorial demostrará cómo anular iguales en Java.

Para comprobar si los valores de los objetos son iguales o no, utilizamos el método equals(). Podemos anular este método en la clase para verificar si los dos objetos tienen los mismos datos o no, ya que las clases en Java se heredan solo de las clases de objetos.

El @Override le dice al compilador de anular durante el tiempo de compilación.

Vea el código que se proporciona a continuación:

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

Producción :

Equal

En el ejemplo anterior, la anulación se realiza mediante el método equals() para comparar dos objetos complejos con la ayuda de una expresión booleana. Luego, si el objeto se compara consigo mismo, devuelve True. Luego, hemos verificado si el objeto es una instancia de complejo o no y, por lo tanto, devuelve False. Ahora, convertimos el objeto en complejo para poder comparar los miembros de datos. Finalmente, creamos la clase de conductor para probar la clase compleja.

Artículo relacionado - Java Override