为了账号安全,请及时绑定邮箱和手机立即绑定

关于equals方法的提问

没创建equals方法时,new 了dog和dog2,他们的内存地址是不同的。所以,判断出dog和dog2不相同。为什么创建了equals方法以后,就相同了?equals方法里不是也要判断内存地址么?

正在回答

3 回答

首先,equals方法是Object类自带的方法,我们使用的时候其实没有创建这个方法,只是因为不满意他自带的方法而想要重写出符合我们要求的方法。

在课件里重写的这一种equals方法,我们要先理解Java的代码阅读顺序,java的代码阅读是严格的按照从上往下从左至右的顺序来读的,所有在看课件中的这个equals方法,我们首先看到的就是一个IF判断,这里判断的条件是要两个对象相等(this==obj)也就是判断内存地址相同才会执行这个return返回。执行return就会直接返回true并且结束这次方法运行,在内存地址不同的情况下,方法才会继续往下走。

0 回复 有任何疑惑可以回复我~
#1

qq_番茄炒西红柿_03233786 提问者

非常感谢!
2017-07-02 回复 有任何疑惑可以回复我~

重写equals方法里面进行了判断,先判断内存地址, new了两个对象, 所以地址不同,然后判断两个对象的类型是否相同,还会进行属性的判断, 如果都相同, 两个对象就是相同的..仅供参考

0 回复 有任何疑惑可以回复我~

不是创建了equals方法,而是重写了equals方法,重写的equals方法可以理解为另一种方法,只是名字不变。仅供参考

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530553    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

关于equals方法的提问

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信