课程
/后端开发
/Java
/Java入门第二季 升级版
没创建equals方法时,new 了dog和dog2,他们的内存地址是不同的。所以,判断出dog和dog2不相同。为什么创建了equals方法以后,就相同了?equals方法里不是也要判断内存地址么?
2017-06-20
源自:Java入门第二季 升级版 9-9
正在回答
首先,equals方法是Object类自带的方法,我们使用的时候其实没有创建这个方法,只是因为不满意他自带的方法而想要重写出符合我们要求的方法。
在课件里重写的这一种equals方法,我们要先理解Java的代码阅读顺序,java的代码阅读是严格的按照从上往下从左至右的顺序来读的,所有在看课件中的这个equals方法,我们首先看到的就是一个IF判断,这里判断的条件是要两个对象相等(this==obj)也就是判断内存地址相同才会执行这个return返回。执行return就会直接返回true并且结束这次方法运行,在内存地址不同的情况下,方法才会继续往下走。
qq_番茄炒西红柿_03233786 提问者
重写equals方法里面进行了判断,先判断内存地址, new了两个对象, 所以地址不同,然后判断两个对象的类型是否相同,还会进行属性的判断, 如果都相同, 两个对象就是相同的..仅供参考
不是创建了equals方法,而是重写了equals方法,重写的equals方法可以理解为另一种方法,只是名字不变。仅供参考
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
1 回答关于equals方法
1 回答关于equals()方法有疑问?
4 回答关于重写equals()方法的疑问
1 回答关于equals( )方法重写的疑问?
2 回答关于equals方法的疑惑