第2节 Object 类
推荐给好友
打印
加入收藏
更新于2009-05-10 13:40:46

7.2 Object 类

Object类
Java程序中所有类的直接或间接父类,类库中所有类的父类,处在类层次最高点包含了所有Java类的公共属性,其构造方法是Object( )




Object类——包含的主要方法
Object类定义了所有对象必须具有的状态和行为,较主要的方法如下
public final Class getClass()
获取当前对象所属的类信息,返回Class对象
public String toString()
返回当前对象本身的有关信息,按字符串对象返回
public boolean equals(Object obj)
比较两个对象是否是同一对象,是则返回true
protected Object clone( )
生成当前对象的一个拷贝,并返回这个复制对象
Public int hashCode()
返回该对象的哈希代码值
protected void finalize() throws Throwable
定义回收当前对象时所需完成的资源释放工作

Object类——相等和同一

相等和同一的概念
两个对象具有相同的类型,及相同的属性值,则称二者相等(equal)
如果两个引用变量指向的是同一个对象,则称这两个变量(对象)同一(identical)
两个对象同一,则肯定相等
两个对象相等,不一定同一
等号“==” 判断的是这两个对象是否同一

判断两个对象是否同一




7.2 Object类(续)——equals方法

由于Object是类层次结构中的树根节点,因此所有其他类都继承了equals()方法Object类中的 equals() 方法的定义如下,可见,也是判断两个对象是否同一boolean equals(Object x)
{ return this == x; }

Object类中equals方法的使用举例




equlas方法的重写
要判断两个对象各个属性域的值是否相同,则不能使用从Object类继承来的equals方法,而需要在类声明中对equals方法进行重写;
String类中已经重写了Object类的Equals方法,可以判别两个字符串是否内容相同

equals方法 的重写
在BankAccount类中增加equals方法,由于是对Object类中的equals方法进行重写,因此方法定义头必须与Object类中的equals方法完全相同




7.2 Object类——Clone方法

Clone方法
根据已存在的对象构造一个新的对象
在根类Object 中被定义为protected,所以需要覆盖为public
实现Cloneable 接口,赋予一个对象被克隆的能力(cloneability)
class MyObject implements Cloneable
{ //…}

示例:Cloning 对象
在这个例子中使用Cloneable将类进行接口标记,并且使用clone方法来拷贝对象



7.2 Object类——finalize方法

finalize方法
在对象被垃圾回收器回收之前,系统自动调用对象的finalize方法
如果要覆盖finalize方法,覆盖方法的最后必须调用super.finalize

7.2 Object类——getClass方法

getClass方法
final 方法,返回一个Class对象,用来代表对象隶属的类
通过Class 对象,你可以查询Class对象的各种信息:比如它的名字,它的基类,它所实现接口的名字等。
void PrintClassName(Object obj)
{System.out.println("The Object's class is " +
obj.getClass().getName());}

Object类:notify、notifyAll、wait方法
notify、notifyAll、wait方法
final方法,不能覆盖
这三个方法主要用在多线程程序中




上一节          下一节
相关链接


 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.