В Java определен один специальный класс — Object. Все остальные классы
являются подклассами этого класса. То есть Object — суперкласс всех остальных классов.
Скачать исходники для статьи можно ниже
Это означает, что ссылочная переменная класса Object может ссылаться
на объект любого другого класса. Кроме того, поскольку массивы реализованы в виде классов, переменная класса Object может ссылаться также на любой массив.
Класс Object определяет некоторые методы, которые доступны в любом объекте:
1.Object clone() – Создает новый объект, не отличающийся от клонируемого
2.boolean equals(Object object) – Определяет, равен ли один объект другому
3.void finalize() – Вызывается перед удалением неиспользуемого объекта
4.Class> getClass() – Получает класс объекта во время выполнения
5.int hashCode() – Возвращает хеш-код, связанный с вызывающим объектом
6.void notify() – Возобновляет выполнение потока
7.void notifyAll() – Возобновляет выполнение всех потоков
8.String toString() – Возвращает строку, которая описывает объект
9.void wait() – Ожидает другого потока выполнения
10.void wait(long миллисек) – Ожидает другого потока выполнения
11.void wait(long миллисек,int наносек) – Ожидает другого потока выполнения
Методы getClass(), notify(), notifyAll() и wait() объявлены как final.
Остальные методы можно переопределять.
Обратите внимание на два метода: equals() и toString().
Метод equals() сравнивает два объекта. Если объекты равны, он возвращает значение true, если нет — false. Точное определение равенства зависит от типа сравниваемых объектов.
Метод toString() возвращает строку, которая содержит описание объекта,
по отношению к которому он вызван. Кроме того, этот метод автоматически вызывается при выводе объекта с помощью метода println().
Многие классы переопределяют этот метод. Это позволяет им приспосабливать описание специально для создаваемых ими объектных типов.