Назад к вопросам
Junior
81
questionbank

Для чего используются методы equals() и toString() в Java?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Метод equals() сравнивает текущий объект с другим объектом на равенство содержимого, а не ссылок. По умолчанию он сравнивает ссылки (как оператор ==), но его можно переопределить для сравнения полей объектов.

Метод toString() возвращает строковое представление объекта. По умолчанию оно включает имя класса и хеш-код объекта, но его также часто переопределяют для предоставления более информативного представления, например, значений полей объекта.

Пример переопределения:

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; // Проверка типа и null
        Person person = (Person) o;
        return age == person.age && // Сравнение полей
               name.equals(person.name); // Использование equals для строк
    }

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