Методы класса object java

Методы класса object java

В Java есть специальный суперкласс Object и все классы являются его подклассами. Поэтому ссылочная переменная класса Object может ссылаться на объект любого другого класса. Так как массивы являются тоже классами, то переменная класса Object может ссылаться и на любой массив.

В таком виде объект обычно не используют. Чтобы с объектом что-то сделать, нужно выполнить приведение типов.

У класса есть несколько важных методов.

  • Object clone() — создаёт новый объект, не отличающий от клонируемого
  • boolean equals(Object obj) — определяет, равен ли один объект другому
  • void finalize() — вызывается перед удалением неиспользуемого объекта
  • Class getClass() — получает класс объекта во время выполнения
  • int hashCode() — возвращает хеш-код, связанный с вызывающим объектом
  • void notify() — возобновляет выполнение потока, который ожидает вызывающего объекта
  • void notifyAll() — возобновляет выполнение всех потоков, которые ожидают вызывающего объекта
  • String toString() — возвращает строку, описывающий объект
  • void wait() — ожидает другого потока выполнения
  • void wait(long millis) — ожидает другого потока выполнения
  • void wait(long millis, int nanos) — ожидает другого потока выполнения

Методы getClass(), notify(), notifyAll(), wait() являются финальными и их нельзя переопределять.

Метод hashCode()

Хеш-код — это целое число, генерируемое на основе конкретного объекта. Его можно рассматривать как шифр с уникальным значением.

Для вычисления хеш-кода в классе String применяется следующий алгоритм.

У любого объекта имется хеш-код, определяемый по умолчанию, который вычисляется по адресу памяти, занимаемой объектом.

Значение хеш-кода возвращает целочисленное значение, в том числ и отрицательное.

Если в вашем классе переопределяется метод equals(), то следует переопределить и метод hashCode().

Метод toString()

Очень важный метод, возвращающий значение объекта в виде символьной строки.

Читайте также:  Как отключить режим энергосбережения на филипс

Очень часто при использовании метода toString() для получения описания объекта можно получить набор бессмысленных символов, например, [I@421199e8. На самом деле в них есть смысл, доступный специалистом. Он сразу может сказать, что мы имеем дело с одномерным массивом (одна квадратная скобка), который имеет тип int (символ I). Остальные символы тоже что-то означают, но вам знать это не обязательно.

Если же вам нужно научное объяснение, то метод работает по следующему алгоритму (из документации).

Обычно принято переопределять метод, чтобы он выводил результат в читаемом виде.

Хотя мы можем создать обычный класс, который не является наследником, но фактически все классы наследуют от класса Object. Все остальные классы, даже те, которые мы добавляем в свой проект, являются неявно производными от класса Object. Поэтому все типы и классы могут реализовать те методы, которые определены в классе Object. Рассмотрим эти методы.

toString

Метод toString служит для получения представления данного объекта в виде строки. При попытке вывести строковое представления какого-нибудь объекта, как правило, будет выводиться полное имя класса. Например:

Полученное мной значение (в данном случае Person@7960847b ) вряд ли может служить хорошим строковым описанием объекта. Поэтому метод toString() нередко переопределяют. Например:

Метод hashCode

Метод hashCode позволяет задать некоторое числовое значение, которое будет соответствовать данному объекту или его хэш-код. По данному числу, например, можно сравнивать объекты.

Например, выведем представление вышеопределенного объекта:

Но мы можем задать свой алгоритм определения хэш-кода объекта:

Получение типа объекта и метод getClass

Метод getClass позволяет получить тип данного объекта:

Метод equals

Метод equals сравнивает два объекта на равенство:

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

Читайте также:  Как отключить отладчик в windows 7

Оператор instanceof позволяет выяснить, является ли переданный в качестве параметра объект объектом определенного класса, в данном случае класса Person. Так как если объекты принадлежат к разным классам, то их сравнение не имеет смысла, и возвращается значение false.

Затем сравниваем по именам. Если они совпадают, возвращаем true, что будет говорить, что объекты равны.

как создать сайт на wordpress, настроить и оптимизировать wordpress

В 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() – Возобновляет выполнение потока

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. Точное определение равенства зависит от типа сравниваемых объектов.

Читайте также:  1С проверка даты на пустое значение

Метод toString() возвращает строку, которая содержит описание объекта,
по отношению к которому он вызван. Кроме того, этот метод автоматически вызывается при выводе объекта с помощью метода println().
Многие классы переопределяют этот метод. Это позволяет им приспосабливать описание специально для создаваемых ими объектных типов.

Ссылка на основную публикацию
Adblock detector