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 +
'}';
}
}