Sobes.tech
Junior

Na čo slúžia metódy equals() a toString() v Jave?

sobes.tech AI

Odpoveď od AI

Metóda equals() porovnáva aktuálny objekt s iným objektom na rovnosť obsahu, nie odkazov. Predvolene porovnáva odkazy (ako operátor ==), ale môže byť prepísaná na porovnanie polí objektov.

Metóda toString() vracia reťazcové zobrazenie objektu. Predvolene obsahuje názov triedy a hash kód objektu, ale často je prepísaná na poskytnutie informatívnejšieho zobrazenia, napríklad hodnôt polí objektu.

Príklad prepísania:

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; // Porovnanie odkazov
        if (o == null || getClass() != o.getClass()) return false; // Kontrola typu a null
        Person person = (Person) o;
        return age == person.age && // Porovnanie polí
               name.equals(person.name); // Použitie equals pre reťazce
    }

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