Sobes.tech
Junior

Kam naudojami metodai equals() ir toString() Java kalboje?

sobes.tech AI

Atsakymas iš AI

equals() metodas lygina esamą objektą su kitu objektu turinio lygybei, o ne nuorodų. Pagal numatytuosius nustatymus jis lygina nuorodas (kaip operatorius ==), tačiau jį galima perrašyti, kad lygintų objektų laukus.

toString() metodas grąžina objekto teksto reprezentaciją. Pagal numatytuosius nustatymus jis apima klasės pavadinimą ir objekto hash kodą, tačiau dažnai jis perrašomas, kad pateiktų išsamesnį vaizdą, pavyzdžiui, objekto laukų reikšmes.

Perrašymo pavyzdys:

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; // Nuorodų palyginimas
        if (o == null || getClass() != o.getClass()) return false; // Tipų ir null patikra
        Person person = (Person) o;
        return age == person.age && // Laukų palyginimas
               name.equals(person.name); // Naudojant equals tekstams
    }

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