没办法理解这段代码啊,麻烦老师再讲解下,谢谢了
public boolean equals(Object obj) { if(obj==null) { return false; } Animal temp=(Animal)obj; if(this.getName().equals(temp.getName())&&(this.getMonth()==temp.getMonth())) return true; else return false; } public boolean equals(Animal obj) { if(obj==null) { return false; } if(this.getName().equals(obj.getName())&&(this.getMonth()==obj.getMonth())) return true; else return false;
24
收起
正在回答
1回答
此时我们是要重写继承自父类Object的equals方法,
如果不重写,那么它比较的是传进来的参数和调用它的对象是否是同一个内存地址下的对象,和==的用法是一样的,但是往往我们想要比较两个对象的值是否相等,可是,一个类里有很多属性,比如年龄,姓名,所以我们要重写equals方法,我们把传进来参数的属性和调用equals方法对象的属性进行一一比较,比较姓名是否相等呀,比较年龄是否相等。只要所有属性都相等,那么就返回true。下边的方法相同,只是限制了传入参数的时候,只能传入指定的类型Animal类型的参数。如果你传入的是Animal类型的参数,直接选择底下的方法执行,如果你传入的是其他类型的参数,会执行第一个方法比较,只不过比较前,把它强转成了Animal类。然后开始逐个属性的比较。最后返回判断结果。
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星