public class TestPointPlan
{
public static void main(String[] args)
{
PointPlan p1 = new PointPlan(12, 17) ;
PointPlan p2 = new PointPlan(12, 17) ;
// les références p1 et p2 sont-elles égales ?
if (p1 == p2)
System.out.println("ok") ;
else
System.out.println("pas ok") ;
// les objets p1 et p2 sont-ils égaux ?
if (p1.equals(p2))
System.out.println("ok") ;
else
System.out.println("pas ok") ;
} // fin main
} // fin classe testPointPlan
<aside>
⚠️ Comparer deux objets avec ==
revient à comparer leurs référence, cela vaut aussi pour les Strings
qui sont des objets en java.
</aside>
On va créer une surcharge de la méthode equals()
dans l’objet qui sera capable de faire cette comparaison.
public class PointPlan {
int abscisse;
int ordonnée;
public PointPlan(int x, int y) {
abscisse = x;
ordonnée = y;
}
public boolean equals(PointPlan p) {
return this.abscisse == p.abscisse && this.ordonnée == p.ordonnée;
}
}
Cette fois p1.equals(p2)
renverra bien la valeur true