6.2.3 Exemple de méthode equals
précédent suivant
Dans cet exemple, nous considérons que deux objets de la
classe Personne représentent la même personne
si leurs attributs nom et prenom sont deux à deux comparables. Cette comparaison ne
tient donc pas compte des autres attributs que nous n’avons pas
représenté dans l’exemple.
L’attribut nom des deux
objets est comparé à l’aide de la méthode equals de sa classe (à savoir String). Lorsque les noms sont identiques, nous procédons
de même pour l’attribut prenom.
La méthode equals a été
générée avec eclipse. Il a suffit de lui
préciser que les champs à comparer étaient le nom et le prénom.
Le code est stéréotypé. En voici quelques points clés :
- l’argument reçu par la méthode est de la classe
Object. Cela vient du fait que la méthode est
héritée et doit être redéfinie. Si nous mettions à la place une référence de la
classe Personne, la méthode serait une
surcharge.
- la ligne 15 vérifie si la référence de l’objet
passée en argument est égale à la référence de l’objet courant.
- la ligne 16 vérifie que la référence passée
n’est pas nulle.
- la ligne 17 vérifie que la référence correspond à un
objet de la classe courante ou de ses classes dérivées.
- la ligne 18 fait un « downcast » de
l’argument vers une référence correspondant à la classe courante.
- les lignes suivantes testent l’égalité à l’aide
de equals entre les attributs
discriminants.
Christian Bac, Denis Conan, Télécom
SudParis, CSC 4002, Octobre 2015
|