Java中的Object类详细介绍
理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类。由于所有的类都继承在Object类,因此省略了extendsObject关键字。
该类中主要有以下方法:toString(),getClass(),equals(),clone(),finalize(),其中toString(),getClass(),equals是其中最重要的方法。
注意:
Object类中的getClass(),notify(),notifyAll(),wait()等方法被定义为final类型,因此不能重写。
getClass()方法;
不可重写,要调用的话,一般和getName()联合使用,如getClass().getName();
toString()方法;
可重写;如果在实际使用中为特定对象提供一个特定的输出模式,当这个类型转换为字符串或字符串连接时,建自动调用重写的toString()方法。
publicObjectInstance{ publicStringtoString(){ return"在"+getClass().getName()+"重写toString()方法" } publicstaticvoidmain(Stringarg[]){ System.out.println(newObjectInstance()); } }
equals()方法;
classV{ } publicclassOverWriteEquals{ publicstaticvoidmain(Stringargs[]){ Strings1="123"; Strings2="123"; System.out.println(s1.equals(s2)); Vv1=newV(); Vv2=newV(); System.out.println(v1.equals(v2)); } }
输出结果:
run: true false BUILDSUCCESSFUL(totaltime:0seconds)
从本例可以看出,在自定义的类中使用equals()方法进行比较时,将返回false,因为equals方法的默认实现是"=="运算符,即比较两个对象的引用地址,而不是比较对象的内容。所以要想真正比较两个对象中的内容,需要在自定义类中重写equals()方法。