对象中的方法
在Object类中,有几个常用的方法,比如getClass()、toString()和equals()。它们在Object.java的实现如下:(Object.java的源码在Java安装目录下的src.zip中,其目录结构为src\java\lang\Object.java)。
public final native Class<?> getClass();
public boolean equals(Objectobj) {
return(this ==obj);
}
public String toString() {
returngetClass().getName() +"@"+Integer.toHexString(hashCode());
}
对于getClass()来说,它可以在运行时获得类。
equals()通常用来进行比较,在Object类中,它进行了引用的比较,只有引用相同时会返回true。但是这样并不是我们想要的比较的情况,比如字符串的比较是比较每个字符是否相同。那么在String类中就会对equals()方法进行重写,String类中的equals()方法的实现如下:(String.java的源码在Java安装目录下的src.zip中,其目录结构为src\java\lang\String.java)。
public boolean equals(ObjectanObject) {
if(this ==anObject) {
returntrue;
}
if(anObject instanceof String) {
String anotherString =(String)anObject;
intn =value.length;
if(n ==anotherString.value.length) {
char v1[] =value;
char v2[] =anotherString.value;
inti =0;
while(n--!=0) {
if(v1[i] !=v2[i])
returnfalse/;
i++;
}
returntrue;
}
}
returnfalse;
}
二、对象拷贝