欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java中的Object类

程序员文章站 2024-03-14 09:35:10
...

Object类

object类是所有java类的根基类

如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类。

如:
Public class person{…}
等价于:
Public class Person extends Object{…}
表1为Object类的常用方法
java中的Object类

Object类有九个方法,可以在Java中的所有类中使用

1.
public String toString() 方法

它是实现在Object类中,我们可以自定义它。
它返回对象的字符串(String)表示形式,描述当前对象的有关信息
通常,它用于调试目的。

2.
public boolean equals(Object obj)方法

它在Object类中实现,我们可以自定义它。
它用于比较两个对象的相等性。Object类中的equals()方法等价于==。

boolean result = obj.equals(Object o);

其中,obj 表示要进行比较的一个对象,o 表示另一个对象。X.equals(y)当x和y是同一个对象的应用时返回true否则返回false

3.
public int hashCode()
它在Object类中实现,我们可以自定义它。
它返回对象的哈希码(整数)值。

1、hashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的;

2、如果两个对象相同,就是适用于equals(java.lang.Object) 方法,那么这两个对象的hashCode一定要相同;

3、如果对象的equals方法被重写,那么对象的hashCode也尽量重写,并且产生hashCode使用的对象,一定要和equals方法中使用的一致,否则就会违反上面提到的第2点;

4、两个对象的hashCode相同,并不一定表示两个对象就相同,也就是不一定适用于equals(java.lang.Object) 方法,只能够说明这两个对象在散列存储结构中,如Hashtable,他们“存放在同一个篮子里”。
4.
protected Object clone() throws
CloneNotSupportedException

它不在Object类中实现,我们可以通过覆盖克隆方法来自定义它。
它用于创建对象的副本。

5.
protected void finalize() throws Throwable

它不是在Object类中实现,我们可以自定义它
它在对象被销毁之前被垃圾收集器调用。

6.
public final Class getClass()

它在Object类中实现,我们不能自定义它。
它返回对对象的Class对象的引用。

7.
public final void notify()

它是在Object类中实现的,我们不能自定义它。
此方法通知对象的等待队列中的一个线程。

8.
public final void notifyAll()

它是在Object类中实现的,我们不能自定义它。
此方法通知对象的等待队列中的所有线程。

9.
public final void wait() throws InterruptedException
public final void wait(long timeout) throws InterruptedException 
public final void wait (long timeout, int nanos) throws InterruptedException

它是在Object类中实现的,我们不能自定义它。
使对象的等待队列中的线程等待,无论是否超时。

以上所有内容皆为学习笔记。