Sobes.tech
Назад к вопросам
Senior
3

Расскажите про методы класса Object в Java

Компании, где спрашивали
СБЕРСБЕР

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

sobes.tech AI

В Java класс Object — корень иерархии всех классов. Он содержит базовые методы, которые наследуются всеми объектами. Основные методы:

  • equals(Object obj) — сравнивает объекты на равенство. По умолчанию сравнивает ссылки, но часто переопределяется для сравнения содержимого.
  • hashCode() — возвращает хэш-код объекта. Важно, чтобы если equals возвращает true для двух объектов, их hashCode был одинаковым.
  • toString() — возвращает строковое представление объекта. По умолчанию выводит имя класса и хэш-код, часто переопределяется для удобного отображения.
  • clone() — создает копию объекта. Требует реализации интерфейса Cloneable.
  • finalize() — вызывается перед сборкой мусора, но устарел и не рекомендуется к использованию.
  • getClass() — возвращает объект Class, описывающий класс объекта.
  • notify(), notifyAll(), wait() — методы для работы с монитором объекта в многопоточности.

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

@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    MyClass myClass = (MyClass) o;
    return Objects.equals(field, myClass.field);
}

@Override
public int hashCode() {
    return Objects.hash(field);
}