对象就是一个地址值,接着右边传过来的对象,String s=p.toString(),把p.字符串输出赋值给s,若打印s的值会包括类所在路径加上十六位地址值,也就是说,和直接输出p的值没区别,打印对象名,就是调用p,toString()方法,可是打印地址值没有作用,所以要对它进行重写,来打印p的变量值
,打印对象默认。toString();string的tostring已经被重写。返回对象
解释this
string和new的对象不同,new的值是一个地址,string对象就是一个值
名字alt+insert加入tostring即可
以后不仅要加set,get,构造函数,还要加上tostring方法(重写后的),(默认打印地址,若不是地址值,俺么这个类的所在对象tostring重写了)来调用tostring方法来打印属性值,害完美,打印对象的tostring’方法打印值,这就是这节课的目的吧
若要打印地址值,一定要把tostring’重写注释了,否则会影响,下面是对string地址打印的解决解答
https://bbs.csdn.net/topics/350230850
equals
- 默认方法返回boolean类型,内部有一个返回值this==obj,this,obj都懂就是p1,p2,主要说这个/=/=,基本类型的=/=比较的是大小,引用类型比较的是地址值,同样的,比叫地址值也没有什么作用啊,也要对它进行重写,重写要进行向下转型,在重写时加入判断,是否为空,是否是person类(用instanceof判断并写入向下转型),不是person类返回false,快捷键也有,同toString();
- 若有一值为空那么会报错。equals方法不支持,这时用到了
- Objects.equals方法
普通equals方法任何一个对象有空都不行,object可以,比较a与b的地址或a是空比较a==b、
普通equals不能这样写,因为只穿一个参数
哦呼,这样可以,答案啊是两个true
String方法的equals方法以及重写比较的是值,new,实例化对象的还是比较地址值