注册 登录
编程论坛 J2EE论坛

请教高手 下面这个程序为什么结果是false ?

g0204yang 发布于 2006-04-19 14:05, 658 次点击
下面这个程序为什么结果是false ?
class value{
int i;
}
public class equalsMethod2{
public static void main(String[]args){
value v1=new value();
value v2=new value();
v1.i=v2.i=100;
System.out.println(v1.equals(v2));
}
}

谁能帮我解释下呀?

[此贴子已经被作者于2006-4-20 10:35:53编辑过]

9 回复
#2
bagger2006-04-19 16:23
v1.i=v2.i=100;
JAVA中可以这么赋值吗?
#3
g0204yang2006-04-19 20:01
这个程序是<<JAVA编程思想>>中的例子
我想应该是正确的吧
#4
g0204yang2006-04-19 20:02
哪位可以帮我解释下呀?
我正郁闷呢
拜托了
#5
leren2006-04-19 20:50

我觉得是v1和v2是两个不同的对象,所以两个对象比较肯定是false.

#6
g0204yang2006-04-20 10:33
equals方法好象是比较两个对象的实际内容吧? 
难道就没有高手吗?这里?

[此贴子已经被作者于2006-4-20 10:35:14编辑过]

#7
bagger2006-04-20 16:42
个人看法仅供参考,
V1和V2是两个独立的对象,
只是V1.I和V2.I的值相同,
但是两个对象是不同的.
就象,有两张100元的钱,
他们的值是一样的
但是他们是两个不同的个体!

#8
凌云2006-04-21 11:22
euqals方法实际上比较的是内存地址,v1、v2分别用new语句在堆里分配了内存,当然地址不会一样了,结果自然是false
#9
g0204yang2006-04-21 13:14
equals难道是先比较内存地址 ,然后再比较内容吗?
我看内容是一样的呀 而且要比较地址的话 我们不是何以用"=="比较符吗?
#10
zhangheng2006-04-24 15:00
equals 比较的是对象不是他的实际值.
1