Accueil
 Sommaire du cours
 1  Introduction à Java
 2  Concepts de bases de Java
 3  Classes et objets en Java
 4  Généralisation spécialisation en Java
 5  Organisation des sources Java
 6  API Java
 6.1  Premières classes de l'API
 6.2  Classe java.lang.Object
 6.2.1  Égalité
 6.2.2  Exemple d'égalité
 6.2.3  Exemple de méthode equals
 6.3  Interface de programmation
 6.4  java.lang.*
 Questions
 6.5  java.util.*
 Questions
 7  Exceptions en Java
 8  Concepts objets avancés en Java
 Bibliographie

 Contacts

W3C validator

Département INF  
 Conception et programmation orientées objet


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
Figures/J08f01

    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