Object类
是所有类的终极父类。
无论是jdk自带的类或数组,还是我们自定义的类,最终都会继承Object这个父类
而且不需要写出来。
Object类中的方法所有的类都具备
-
getClass() 后面反射时会讲
-
clone() 后面讲接口和异常时会讲
-
hashCode() 后面讲集合的时候会讲
-
finalize() 后面讲异常时会讲
-
wait() , wait(long) , wait(...) , notify() , notifyAll() 后面讲线程会讲
-
toString() 返回一个字符串,用来描述当前对象
-
equals() 用来比较当前对象与另一个对象是否相等
String toString()方法
-
返回一个字符串,代表当前对象的一个文字描述
-
默认toString方法返回的内容包括对象的类型及对象的地址
-
在打印对象时,会默认打印对象的toString方法的返回值。
boolean equals(Object obj) 方法
-
equals用来比较两个对象是否相等。通过源码可知, 使用的是 == 比较。
-
== 可以比较基本类型 , 也可以比较引用类型。 比较基本类型比的是值,比较引用类型比较的是地址
-
equals只能比较引用类型,默认比较的是地址,但可以通过重写,改成比较内容. 像String就重写了equals方法,改为比较内容了
-
-
比较哪两个对象是否相等呢?
-
一个是this这个对象
-
还有一个是以参数传递过来的对象 obj
-
obj的本质也是当前类型的对象。 目的就是比较两个相同类型的对象是否相等
-
可以通过强转,将obj还原成最开始的类型, 并完成this与obj的属性内容比较
-
class G{
String name = "zs" ;
int age = 18 ;
public String toString(){
return "my name is "+ name + ", my age is " + age ;
}
public boolean equals(Object obj){
if( this == obj){
return true ;
}
G g = (G)obj ;
if(this.name.equals(g.name) && this.age == g.age){
return true ;
}else{
return false ;
}
}
}