Constat de base

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>

Solution pour comparer le contenu de deux objets

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