详解Object类
Object类是所有类的父类,这其中当然是包括抽象类和接口的。所以所有类都实现这个类的方法,下面我们就来介绍一下这个类。
这个类是在java.lang这个包中,这个包在程序运行是自动加载的,并不需要我们进行导入。
在这个类中有一下几个方法:
1.protected Object clone();
创建并返回此对象的一个副本。这个副本和原对象是独立的,也就是各自拥有各自的地址,也就是说:
对于表达式x.clone() == x 的值是flase.
而对于表达式: x.clone().getClass() == x.getClass()的值为true。getClass()方法也是Object类中的一个方法,我们下面来讲一下。
2.public final Class<?> getClass()
这个方法的作用是返回当前对象的类,这个注意这个类是final类型的,所以不能重写,
这个类的使用方法:
String str =”abc”;
Class<? extends Object> a = str.getClass();
这是输出接受变量的话是:class 包名+“.”+类名。
我下面讲的是一个比较重要的方法,但并不难。
3.public boolean equals(Object obj)
这个方法的作用是判断其他某个对象是否与此对象“相等”。这里的相等而非比较的是两个变量名,大家都知道引用变量内存的是地址,所以想要比较两个引用对象的内容是否相等就不能用“==”而要使用equal方法,当然这需要重写equal()方法。对于 Object 类的 equals()方法来说,它等价于==。对于 String 类的 equals()方法来说,它是判断当前字符串与传进来的字符串的内容是否一致。
4.public String toString()
这个方法返回对象的一些信息,如果不重写该方法,该方法会返回:包名.类名@内存地址。在实际应用中这个方法是推荐根据情况重写的。再说一句,当我们用
System,out.print();
来输出某个对象时,将自动转换为输出该对象的toString()方法。
5.public int hashCode()
这个方法是用来返回该对象的哈希码值。在Java中哈希码是对象的一种特征。
由于Object类中的其他方法都与线程的知识有关,到我们学到线程部分的时候会给大家讲解。