Junior — Middle
77
Можете объяснить, что означает метод equals в контексте сравнения объектов в Java?
Companies where asked
bip.ru
Answer from AI
sobes.tech AI
В Java метод equals используется для сравнения содержимого двух объектов на равенство. По умолчанию, если не переопределять, метод equals из класса Object сравнивает ссылки, то есть проверяет, указывают ли обе переменные на один и тот же объект в памяти.
Чтобы сравнивать объекты по значению (например, по полям класса), нужно переопределить метод equals. При этом важно соблюдать контракт метода: он должен быть рефлексивным, симметричным, транзитивным, консистентным и не равным null.
Пример переопределения equals в классе Person:
public class Person {
private String name;
private int age;
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // сравнение с самим собой
if (obj == null || getClass() != obj.getClass()) return false;
Person other = (Person) obj;
return age == other.age && Objects.equals(name, other.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
Таким образом, equals позволяет сравнивать объекты по смыслу, а не по ссылке.