toString():
在Object中,返回的是类全名@HashCode值, 即对象的内存堆中的位置信息
【类有类名和类全名之分:
类名:即最短的名称
类全名:从包名开始写的名称
如: String 是类名,java.lang.String是类全名】
此方法会在输出变量时,或引用变量进行拼接时默认调用。而查看地址信息,通常没有必要,我们通常要查看的是
对象的成员变量信息因此我们都需要重写toString()方法,用于查看对象的详情
格式:
"[成员变量1="+成员变量1+",成员变量2="+成员变量2+"]"
equals(Object obj)
Object类型中的此方法中的逻辑是比较调用者this与形参obj的地址信息是否相等。
简单说成:比较this与obj是不是同一个对象,内容是不是相同,所以在定义类型时,继承过来的equals方法 我们要重写。
重写规则:
(1) 查看传进来的obj是不是null
if(obj==null){
return false;
}
(2) 查看传进来的obj是不是this.
if(obj==this){
return true;
}
(3) 查看穿进来的obj是不是本类型
if(obj.getClass()!=this.getClass()){
return false;
}
可以改成
if(!(obj instanceof Person)){
return false;
}
instanceof关键字:
作用是判断引用变量指向的对象是否属于某一类型
语法:
boolean f = 变量名 instanceof 类型名
快捷键:shift+alt+s ,可以选择添加已经写好的toString,和equal方法