Junior
La ce sunt folosite metodele equals() și toString() în Java?
sobes.tech AI
Răspuns de la AI
Metoda equals() este utilizată pentru compararea obiectelor în ceea ce privește echivalența logică, adică determină dacă două obiecte reprezintă aceeași valoare sau entitate, indiferent dacă sunt același obiect fizic în memorie.
Metoda toString() este utilizată pentru obținerea unei reprezentări în șir de caractere a obiectului. În mod implicit, ea returnează un șir care conține numele clasei și codul său hash, dar adesea este suprascrisă pentru a oferi o descriere mai informativă a stării obiectului.
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; // Compararea referințelor
if (o == null || getClass() != o.getClass()) return false; // Verificarea tipului și null
ExampleObject that = (ExampleObject) o; // Casting de tip
return id == that.id && // Compararea câmpurilor semnificative
name.equals(that.name);
}
@Override
public int hashCode() {
// Suprascrierea hashCode este obligatorie atunci când se suprascrie 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");
// Utilizarea lui equals()
System.out.println("obj1 equals obj2: " + obj1.equals(obj2)); // true - echivalent logic
System.out.println("obj1 equals obj3: " + obj1.equals(obj3)); // false - obiecte diferite
// Utilizarea lui toString()
System.out.println("obj1 toString(): " + obj1.toString()); // Va afișa reprezentarea în șir a obiectului
}
}