默认情况下,object类是java中所有类的父类。 换句话说,它是java的顶级类。
如果想引用你不知道的类型的对象,使用object类是没有错的。请注意,父类引用变量可以引用子类对象,称为上转换。
下面举一个例子,有一个getobject()方法返回一个对象,但它可以是任何类型,如:employee,student等这样的类,我们可以使用object类引用来引用该对象。 例如:
object obj=getobject();//we don't know what object will be returned from this method
object类为所有对象提供了一些常见的行为,如对象可以进行比较,对象可以克隆,对象可以通知等。
object类提供了许多方法。 它们如下:
| 方法 | 描述 |
|---|---|
public final class getclass() |
返回此对象的class类对象。 class类可以进一步用于获取此类的元数据。 |
public int hashcode() |
返回此对象的哈希码值 |
public boolean equals(object obj) |
将给定对象与此对象进行比较。 |
protected object clone() throws clonenotsupportedexception |
创建并返回此对象的精确副本(克隆)。 |
public string tostring() |
返回此对象的字符串表示形式。 |
public final void notify() |
唤醒单线程,等待此对象的监视器。 |
public final void notifyall() |
唤醒所有线程,等待此对象的监视器。 |
public final void wait(long timeout)throws interruptedexception |
导致当前线程等待指定的毫秒,直到另一个线程通知(调用notify()或notifyall()方法)。 |
public final void wait(long timeout,int nanos)throws interruptedexception |
导致当前线程等待指定的毫秒和纳秒,直到另一个线程通知(调用notify()或notifyall()方法)。 |
public final void wait()throws interruptedexception |
导致当前线程等待,直到另一个线程通知(调用notify()或notifyall()方法)。 |
protected void finalize()throws throwable |
在对象被垃圾收集之前由垃圾收集器调用。 |
我们将在下一章详细学习这些方法。