Equals() [Résolu]

Messages postés
13
Date d'inscription
lundi 4 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016
- - Dernière réponse : SMMM@
Messages postés
13
Date d'inscription
lundi 4 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016
- 10 janv. 2016 à 13:37
svp la méthode equals() de la classe object compare les références ou bien le contenu??? et merci d'avance
Afficher la suite 

2 réponses

Messages postés
16034
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
13 octobre 2019
88
0
Merci
Bonjour,

La méthode equals de la classe Object compare uniquement les références puisqu'un Object n'a aucun contenu...

public boolean equals(Object obj) {
    return (this == obj);
}

Pour prendre en compte le contenu d'un objet il faut que sa classe redéfinisse la méthode equals.
Commenter la réponse de KX
Messages postés
13
Date d'inscription
lundi 4 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016
0
Merci
merci KX pour votre répense mais j'ais pas bien compris car j'ai essayer ce code :
public class Equa {
	private Integer t;
	private Integer k;

	public Equa() {
			t=new Integer(12);
			k=new Integer(12);
			System.out.println(t.equals(k));
		}
		public static void main(){
		new Equa();
		}
	}

il s'agit de 2 référence différents mais il retourne true!!!
si vous pouvez m'aidez
KX
Messages postés
16034
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
13 octobre 2019
88 -
Ce que tu manipules ce ne sont pas des Object mais des Integer, la méthode equals a été redéfinie dans cette classe...

public boolean equals(Object obj) {
    if (obj instanceof Integer)
        return intValue() == ((Integer) obj).intValue();
    return false;
}
SMMM@
Messages postés
13
Date d'inscription
lundi 4 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016
-
ok merci beaucoup maintenant j'ai compris
Commenter la réponse de SMMM@