老师,关于比较的问题想确认下我的想法
在老师的equals和==的视频里,我进一步认知了二者的区别;以下是我的理解:
1. 当调用的是父类的成员属性做equals比较时,不管是在父类创建判断方法还是在子
类创建判断方法,所引用的都是同一个地址进行比较,当重写equals为String 类型的
比较时,则比较的为内部的值,当用==做比较时,则比较是否是指向同一个地址。
2.关于数组类型做equals比较时,我发现不管是字符类型还是整型(双精度)类型,不
管内部的值是否一致,所返回的值都为false。 而用String s=new String("s")这种
方式做比较如果内部值为一样时,则返回true,反之为false。原因是因为String
s=new String("s")这种方式相当于实例化了一个字符串对象,而数组类型并非对象,
所以不管怎么做比较都是比较地址是否相同。
3.关于成员属性返回值不同和数组返回值相同的原因,是因为成员属性是属于对象类型
,而数组并非对象类型,所以才会出现这种返回值情况;
(以上是我对二者的理解,烦请老师看下我的理解是否正确)
正在回答
同学你好, 在String 类中有重写equals方法,则String 类型的对象调用equals方法,对比的就是值。所以String类型的s与String类型的name属性,都可以调用equals方法对比值是否相等。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星