Junior
Για ποιο λόγο χρησιμοποιούνται οι μέθοδοι equals() και toString() στη Java;
sobes.tech AI
Απάντηση από AI
Η μέθοδος equals() συγκρίνει το τρέχον αντικείμενο με ένα άλλο αντικείμενο για την ισότητα περιεχομένου, όχι αναφορών. Προεπιλεγμένα, συγκρίνει τις αναφορές (όπως ο τελεστής ==), αλλά μπορεί να υπερισχύσει για σύγκριση πεδίων των αντικειμένων.
Η μέθοδος toString() επιστρέφει μια αναπαράσταση σε μορφή συμβολοσειράς του αντικειμένου. Προεπιλεγμένα, περιλαμβάνει το όνομα της κλάσης και τον κωδικό hash του αντικειμένου, αλλά συχνά υπερισχύει για παροχή πιο ενημερωτικής αναπαράστασης, π.χ., τιμές πεδίων του αντικειμένου.
Παράδειγμα υπερισχύσεως:
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true; // Σύγκριση αναφορών
if (o == null || getClass() != o.getClass()) return false; // Έλεγχος τύπου και null
Person person = (Person) o;
return age == person.age && // Σύγκριση πεδίων
name.equals(person.name); // Χρήση του equals για συμβολοσειρές
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}