为了账号安全,请及时绑定邮箱和手机立即绑定

为什么老师重写的equals方法中name需要用equals()进行比较而不用==?

我觉得这里也可以用==来比较啊

正在回答

4 回答

看第二章http://www.imooc.com/code/2203

0 回复 有任何疑惑可以回复我~

测试了一下,两个都行呀!

1 回复 有任何疑惑可以回复我~

但是这里比较的是两个字符串类型,如果他们的name值相等,地址也是相等的啊

0 回复 有任何疑惑可以回复我~
#1

say意

字符串是引用类型,包含引用和对象两个部分,他们的对象内容相同,但是引用可能不同
2017-04-03 回复 有任何疑惑可以回复我~

说不明白,百度一下==和.equals的区别,答案很详细。我的理解是这里因为需要比较两个name的值是否相等,如果用“==”号的话,即使两个name的值相等,但是是不同的对象,所以他们的内存地址不同,所以会判断为false,违背了我们的想法。所以用的是.equals。

新手也是刚刚学习,回答仅作参考

0 回复 有任何疑惑可以回复我~
#1

qq_做事不要偷懒_0 提问者

但是这里比较的是两个字符串类型,如果他们的name值相等,地址也是相等的啊
2017-04-03 回复 有任何疑惑可以回复我~
#2

慕函数1733451 回复 qq_做事不要偷懒_0 提问者

不同对象中的两个字符串,他们的地址还会相同么?
2017-04-12 回复 有任何疑惑可以回复我~
#3

桥米 回复 qq_做事不要偷懒_0 提问者

字符串是引用型数据类型,name值相同,地址不一定相同啊。比如String a="java";String b="java";a==b就为false,他们是两个不同的对象,==比较内存地址,不一样的
2017-04-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么老师重写的equals方法中name需要用equals()进行比较而不用==?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信