关于equals方法的提问

来源:9-9 Java 中的 Object 类 Ⅱ

qq_番茄炒西红柿_03233786

2017-06-20 23:32

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

写回答 关注

3回答

  • 慕的地8525849
    2017-06-28 15:50:10
    已采纳

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

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

    qq_番茄炒...

    非常感谢!

    2017-07-02 11:57:49

    共 1 条回复 >

  • qq_康康龙_0
    2017-06-21 09:30:59

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

  • 慕粉9739021
    2017-06-21 09:13:37

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

Java入门第二季 升级版

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

530646 学习 · 6091 问题

查看课程

相似问题