不理解啊
问题描述:
if(this==obj)为啥就要返回true
问题描述:
obj.getclass==cat.class为啥后面就要跟着三个属性的相等判断,
问题描述:
并且最下面为啥还要返回一个false
正在回答 回答被采纳积分+1
同学你好,对于你的问题,老师分别做回答:
1.if(this==obj)返回true的原因是:如果用来对比的对象是同一个,那么他们一定是一样的。举个例子:现在已知世界上只有一个“张三”,此时我们要对比“张三”和“张三”是不是同一个人,显然他们是同一个人,那么就不需要继续对比其他因素了。
2.obj.getclass==cat.class之后对比属性:当代码执行到这里的时候,我们可以确定拿来对比的两个对象不是同一个对象了。此时我们先对比两个对象的实际类型是否一样。举个例子:用来对比的两个对象一个是人,一个是狗,显然此时就不需要继续对比了,肯定是不一样的。但是如果两个对象都是人呢?并不是所有人都是同一个人,所以我们需要继续对比一些细节,比如姓名是不是一样,身份证号是不是一样等等。在我们的代码中就是依次对比所有属性的值是否相同。
3.最后返回false的原因:在代码中出现了两个if语句,这两个if是有可能在判断条件的时候都是false,那么代码块中的return语句都没有得到执行,对于这个方法来讲就没有一个返回值,不符合语法要求。举个例子:我们用“张三”和“李四”做对比,第一个if语句判断结果为false,因为不是同一个人。继续判断下一个if语句,此时我们发现,“张三”是个人,而“李四”是只猫的名字,显然此时的if语句判断结果也为false,此时代码继续向下运行,没有一个可以return的值了。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星