Equals()

Résolu
SMMM@ Messages postés 13 Date d'inscription lundi 4 janvier 2016 Statut Membre Dernière intervention 1 février 2016 - 10 janv. 2016 à 11:22
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

2 réponses

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 127
10 janv. 2016 à 12:03
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.
0
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:19
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
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 127
Modifié par KX le 10/01/2016 à 13:31
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;
}
0
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
ok merci beaucoup maintenant j'ai compris
0
Rejoignez-nous