Sobes.tech
Junior

Pentru ce sunt folosite metodele equals() și toString() în Java?

sobes.tech AI

Răspuns de la AI

Metoda equals() compară obiectul curent cu alt obiect pentru egalitatea conținutului, nu referințele. În mod implicit, compară referințele (ca operatorul ==), dar poate fi rescrisă pentru compararea câmpurilor obiectelor.

Metoda toString() returnează o reprezentare în formă de șir de caractere a obiectului. În mod implicit, include numele clasei și codul hash al obiectului, dar este adesea rescrisă pentru a oferi o reprezentare mai informativă, de exemplu, valorile câmpurilor obiectului.

Exemplu de rescriere:

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; // Compararea referințelor
        if (o == null || getClass() != o.getClass()) return false; // Verificarea tipului și null
        Person person = (Person) o;
        return age == person.age && // Compararea câmpurilor
               name.equals(person.name); // Utilizarea equals pentru șiruri
    }

    @Override
    public String toString() {
        return "Person{" +
               "name='" + name + '\'' +
               ", age=" + age +
               '}';
    }
}