Remplacer equals() en Java
En Java, le remplacement se produit lorsque la classe enfant ou la sous-classe a la même exécution de méthode que celle déclarée dans la classe parent.
La méthode equals()
compare deux chaînes. Si les données d’un objet chaîne sont les mêmes que celles de l’autre, elle renvoie la valeur True, sinon la valeur False. Lorsque nous redéfinissons la méthode equals()
, il est toujours recommandé de redéfinir également la méthode hashtag()
.
Ce didacticiel montrera comment remplacer les valeurs égales en Java.
Pour vérifier si les valeurs dans les objets sont égales ou non, nous utilisons la méthode equals()
. Nous pouvons surcharger cette méthode dans la classe pour vérifier si les deux objets ont les mêmes données ou non, car les classes en Java sont héritées des classes d’objets uniquement.
Le @Override
indique au compilateur de surcharger pendant la compilation.
Voir le code ci-dessous :
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 ");
}
}
}
Production:
Equal
Dans l’exemple ci-dessus, la redéfinition est effectuée par la méthode equals()
pour comparer deux objets complexes à l’aide d’une expression booléenne. Ensuite, si l’objet est comparé à lui-même, il renvoie True. Ensuite, nous avons vérifié si l’objet est une instance de complexe ou non et renvoie donc False. Maintenant, nous transtypons l’objet en complexe afin de pouvoir comparer les données membres. Enfin, nous créons une classe de pilote pour tester la classe complexe.