Junior
À quoi servent les méthodes equals() et toString() en Java?
sobes.tech IA
Réponse de l'IA
La méthode equals() est utilisée pour comparer des objets en termes d'équivalence logique, c'est-à-dire déterminer si deux objets représentent la même valeur ou entité, indépendamment du fait qu'ils soient le même objet physique en mémoire.
La méthode toString() est utilisée pour obtenir une représentation sous forme de chaîne de l'objet. Par défaut, elle renvoie une chaîne contenant le nom de la classe et son code de hachage, mais elle est souvent redéfinie pour fournir une description plus informative de l'état de l'objet.
public class ExampleObject {
private int id;
private String name;
public ExampleObject(int id, String name) {
this.id = id;
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true; // Comparaison des références
if (o == null || getClass() != o.getClass()) return false; // Vérification du type et null
ExampleObject that = (ExampleObject) o; // Cast du type
return id == that.id && // Comparaison par champs significatifs
name.equals(that.name);
}
@Override
public int hashCode() {
// Redéfinir hashCode est obligatoire lors de la redéfinition de equals
return Objects.hash(id, name);
}
@Override
public String toString() {
return "ExampleObject{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public static void main(String[] args) {
ExampleObject obj1 = new ExampleObject(1, "Test");
ExampleObject obj2 = new ExampleObject(1, "Test");
ExampleObject obj3 = new ExampleObject(2, "Another");
// Utilisation de equals()
System.out.println("obj1 equals obj2: " + obj1.equals(obj2)); // true - logiquement équivalents
System.out.println("obj1 equals obj3: " + obj1.equals(obj3)); // false - objets différents
// Utilisation de toString()
System.out.println("obj1 toString(): " + obj1.toString()); // Affichera la représentation en chaîne de l'objet
}
}