Approche Orienté Objet : Methode Equals et HashCode
Résolu/Fermé
Jiko-java
Messages postés
186
Date d'inscription
dimanche 25 septembre 2016
Statut
Membre
Dernière intervention
22 juillet 2017
-
13 juil. 2017 à 22:55
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017 - 21 juil. 2017 à 00:13
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017 - 21 juil. 2017 à 00:13
A voir également:
- Approche Orienté Objet : Methode Equals et HashCode
- Vente objet occasion entre particulier - Guide
- Identifier un objet à partir d'une photo - Guide
- Objet interdit en cabine ryanair - Guide
- Ce document fait l'objet d'un trop grand nombre de modifications ✓ - Forum Word
- Combien de temps restent les empreintes digitales sur un objet - Forum Vos droits sur internet
1 réponse
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
Modifié le 14 juil. 2017 à 02:10
Modifié le 14 juil. 2017 à 02:10
Bonjour,
"Comment peut il considéré que c'est les même objet"
Il ne considère pas que ce sont les mêmes objets, il considère que leurs valeurs sont égales, par évaluation de la méthode equals.
Si la méthode equals renvoie true c'est parce que tu lui as demandé de renvoyer true s'ils avaient le même rayon :
La confiance n'exclut pas le contrôle
"Comment peut il considéré que c'est les même objet"
Il ne considère pas que ce sont les mêmes objets, il considère que leurs valeurs sont égales, par évaluation de la méthode equals.
Si la méthode equals renvoie true c'est parce que tu lui as demandé de renvoyer true s'ils avaient le même rayon :
return this.rayon == cercle.rayon;or dans ton code tu as bien deux fois
new Circle(5.0), donc même rayon, la méthode equals renvoie true, donc les deux objets sont égaux.
La confiance n'exclut pas le contrôle
14 juil. 2017 à 15:31
Modifié le 14 juil. 2017 à 16:05
Cependant en général on ne veut pas savoir si les références sont identiques, ce que l'on veux c'est savoir si la valeur qu'ils représentent sont égales.
Par exemple, avec un String je veux faire pour savoir si str a effectivement pour valeur "toto", peu importe que ce soit le même objet ou deux objets différent, ce qui m’intéresse c'est de comparer leurs valeurs...
C'est à ça que sert la méthode equals, à pouvoir comparer deux objets sur des critères spécifiques à leurs valeurs, mais c'est du cas par cas, c'est pour ça qu'il faut la redéfinir pour chaque classe qui représente une valeur.
"if (this == obj) qui regarde la référence des objets et dans ce cas là il renvoie false pas true"
Non, il ne renvoie pas false ici. Pour cette première condition le return ne concerne que le cas où c'est vrai (si c'est exactement le même objet ils ont forcément la même valeur). Mais si la condition est fausse, on continue la comparaison avec les conditions suivantes, jusqu'au qui caractérise l'égalité de valeur spécifique à ta classe.
21 juil. 2017 à 00:13