课程
/后端开发
/Java
/Java入门第二季 升级版
看视频看的蒙蔽了,哪个是比较地址,哪个是比较值?还有equals重写后又是比较什么
2016-12-19
源自:Java入门第二季 升级版 9-9
正在回答
Dog dog = new Dog 就是一次对象的引用 没重写之前equals比较对象的引用是否指向同一块内存
慕瓜2589535 提问者
已经知道了 谢谢大家
这个问题要看回Object类,( 所有java 对象的父类 , 里面自带了equals 方法, 就是用的 ==, 比较连个对象的地址), 没有明确写出继承关系的,都是默认继承了Object , 没重写equals 就用了Object 的equals(==)。
重写后要根据写的具体内容来看。eg:Student(id ,name), 每个学生只有唯一一个id , 所以他的equals方法可以只比较他的id,id 相同就可以认为是同一个学生了
equals在没重写前和==一样是比较地址的 重写之后就是比较值了
(注:==可以判断两个基本数据类型的数据值是否相同 如果判断的是两个引用的值是否相同 比较的就是内存地址了)
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
2 回答equals 和==
1 回答equals问题
2 回答equals()方法的问题
5 回答equals()和==的区别
3 回答equals使用问题