Sur les objets, l'opérateur == compare l'égalité des références et pas
l'état des objets auxquels elles font références.
Compteur c1 = new Compteur();
Compteur c2 = new Compteur();
c1==c2 => false
En effet, c1 et c2 sont deux objets différents !
Même si ils ont tous les deux l'état à 0. Le new
indique toujours la création d'un objet nouveau (différent).
Deux références peuvent cependant référencer le même objet. En particulier, l'affectation de références ne
créé pas de nouvel objet.
Compteur c2 = new Compteur();
Compteur c3 = c2; // c3 référence le même objet que c2, pas de création d'objet !
c3==c2 => true