Junior
За какво се използват методите equals() и toString() в Java?
sobes.tech AI
Отговор от AI
- equals(): Сравнява два обекта за равенство по съдържание. По подразбиране, Object.equals() сравнява референции (еквивалентно на
==). При пренаписване трябва да се спазва контрактът: рефлексивност, симетрия, транзитивност, съгласуваност, и за ненулев x, x.equals(null) трябва да бъде false. - toString(): Връща низовото представяне на обекта. По подразбиране, за Object, това е името на класа + хеш-код. Пренаписването осигурява полезна информация за обекта за логване, отстраняване на грешки или показване.
Пример за пренаписване:
public 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;
Person person = (Person) o;
return age == person.age &&
name.equals(person.name);
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}