| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3086 人关注过本帖
标题:equal,和等号的用法..
只看楼主 加入收藏
jxry8888
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-8-13
收藏
得分:0 

怎么么有人解释第三个的错误原因啊,
Number n3 = new Number();
Number n4 = new Number();
n3.i = 30;
n4.i = 30;
System.out.println(n3.equals(n4));//(3)false不明白什么意思....
按照你们的理论,equals比较的是数值,n3和n4的数值都是30呀.....


2007-02-05 00:25
Java
Rank: 1
等 级:新手上路
帖 子:718
专家分:0
注 册:2007-1-29
收藏
得分:0 
以下是引用jxry8888在2007-2-5 0:25:18的发言:

怎么么有人解释第三个的错误原因啊,
Number n3 = new Number();
Number n4 = new Number();
n3.i = 30;
n4.i = 30;
System.out.println(n3.equals(n4));//(3)false不明白什么意思....
按照你们的理论,equals比较的是数值,n3和n4的数值都是30呀.....

你自己又没有重写equals方法,你这样调用默认是Object给你 实现的,Object怎么知道你的相等 是i相等呢
所以,你得为你的Number类写一个equals方法
public boolean equals(Object other){
if(other instanceof Number){
Number n=(Number)other;
return n.i==this.i;
}else{
return false;
}
}


Java,My Love!
2007-02-05 09:24
Java
Rank: 1
等 级:新手上路
帖 子:718
专家分:0
注 册:2007-1-29
收藏
得分:0 

还有一点你要记住,==如果是比较对象,它永远是比较对象的地址是不是一样,而不会比较它们内部的值是否一样,这一点我们不能重写
但是equals我们也可以重写,赋给它新的含 义


Java,My Love!
2007-02-05 09:26
jxry8888
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-8-13
收藏
得分:0 
谢谢楼上的,学到知识了!!!

2007-02-05 10:54
Java
Rank: 1
等 级:新手上路
帖 子:718
专家分:0
注 册:2007-1-29
收藏
得分:0 
不用谢,大家一起学习

Java,My Love!
2007-02-05 11:10
jxry8888
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-8-13
收藏
得分:0 

刚才看了张孝祥的教程视频,正好有这个知识点,现在印象更加深刻了...
谢谢楼上的...


2007-02-13 17:28
快速回复:equal,和等号的用法..
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038274 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved