The Клас об'єкта є батьківським класом усіх класів у java за замовчуванням. Іншими словами, це найвищий клас Java.
Клас Object корисний, якщо ви хочете посилатися на будь-який об’єкт, тип якого вам не відомий. Зауважте, що посилання на змінну батьківського класу може посилатися на об’єкт дочірнього класу, відомий як upcasting.
Давайте візьмемо приклад, є метод getObject(), який повертає об’єкт, але він може бути будь-якого типу, як-от Employee, Student тощо, ми можемо використовувати посилання на клас Object для посилання на цей об’єкт. Наприклад:
Object obj=getObject();//we don't know what object will be returned from this method
Клас Object надає деякі спільні способи поведінки для всіх об’єктів, наприклад об’єкт можна порівнювати, об’єкт можна клонувати, об’єкт можна сповіщати тощо.
Методи класу Object
Клас Object надає багато методів. Вони такі: |
метод | опис |
---|---|
загальнодоступний кінцевий клас getClass() | повертає об’єкт класу Class цього об’єкта. Клас Class можна використовувати для отримання метаданих цього класу. |
public int hashCode() | повертає номер хеш-коду для цього об'єкта. |
публічне логічне значення дорівнює (Object obj) | порівнює даний об'єкт з цим об'єктом. |
protected Object clone() викидає CloneNotSupportedException | створює і повертає точну копію (клон) цього об'єкта. |
public String toString() | повертає рядкове представлення цього об'єкта. |
public final void notify() | активує один потік, очікуючи на моніторі цього об'єкта. |
public final void notifyAll() | активує всі потоки, які очікують на моніторі цього об'єкта. |
public final void wait(long timeout) генерує InterruptedException | змушує поточний потік чекати вказані мілісекунди, поки інший потік не сповістить (викличе метод notify() або notifyAll(). |
public final void wait(long timeout,int nanos) генерує InterruptedException | змушує поточний потік чекати вказані мілісекунди та наносекунди, поки інший потік не сповістить (викличе метод notify() або notifyAll(). |
public final void wait() генерує InterruptedException | змушує поточний потік очікувати, поки інший потік не сповістить (викликає метод notify() або notifyAll(). |
protected void finalize() throws Throwable | викликається збирачем сміття перед тим, як об’єкт збирається. |
Ми детально ознайомимося з цими методами в наступних розділах.