class Dog{
int height;
int weight;
String name;
}
public class DogTest {
public static void main(String[] args) {
Dog one = new Dog();
one.height=4;
one.name="fudo";
one.weight =2;
Dog two = new Dog();
two.height=4;
two.name="fudo";
two.weight =2;
if (one.equals(two)){
System.out.println("True");
}
else{
System.out.println("False");
}
}
}
Pourquoi cette sortie "Faux"? Si c'est par défaut en Java que "tous les objets ne sont pas égaux même s'ils ont les mêmes valeurs" alors comment puis-je "persuader" Java que ces deux objets sont effectivement égaux? D'accord, même si deux chiens ont le même nom, la même taille, le même poids, on peut être dalmatine et l'autre pitbull, et même s'ils sont la même "race", ils peuvent toujours être différents les uns des autres. PS: Je comprends qu'en disant si (un == deux) {} nous comparons si tous les deux se réfèrent au même objet sur le tas, .equals sur la chaîne compare s'ils ont les mêmes caractères dans le même ordre.Pourquoi cet exemple de code .equals() renvoie-t-il "false"?
Je vais être difficile à travailler si vous ne remplace pas égal ... –
@Harald Ce n'est pas la même chose. C'est pourquoi certaines chaînes '==' fonctionnent et d'autres pas. – corsiKa