6.2.1 Égalité
Les objets sont manipulés par des références ⇒
-
o1 == o2
- Teste si les références sont égales
-
o1.equals(o3)
- Teste si le contenu de l’objet référencé par
o3 est comparable au contenu de l’objet
référencé par o1
précédent suivant
La méthode equals a été
conçue pour permettre de décrire que deux objets sont identiques du point de
vue métier de la classe. Par exemple, deux objets de type chaîne de caractères,
qui sont lexicographiquement équivalents, doivent être considérés comme
identiques.
La classe Object implante
cependant la méthode equals en testant
l’égalité entre les références. Les classes dérivées doivent redéfinir la
méthode equals en garantissant qu’elle
est correcte du point de vue métier associé à la classe.
Dans notre schéma, la comparaison par l’égalité de
références ne permet pas de détecter que les chaînes de caractères référencées
par o1 et o3
sont lexicographiquement les mêmes.
La surcharge de la méthode equals dans une classe consiste à choisir la liste des
champs significatifs de l’état des objets de la classe. L’objet
courant est équivalent à l’objet en référence si chacun des champs
entrant dans la comparaison est équivalent au champ correspondant dans
l’objet en référence.
Christian Bac, Denis Conan, Télécom
SudParis, CSC 4002, Octobre 2015
|