当前位置: 代码迷 >> Java Web开发 >> 请教高手 下面这个程序为什么结果是false ?
  详细解决方案

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

热度:271   发布时间:2006-04-19 14:05:00.0
请教高手 下面这个程序为什么结果是false ?
下面这个程序为什么结果是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编辑过]

搜索更多相关主题的帖子: false  结果  

----------------解决方案--------------------------------------------------------
v1.i=v2.i=100;
JAVA中可以这么赋值吗?

----------------解决方案--------------------------------------------------------
这个程序是<<JAVA编程思想>>中的例子
我想应该是正确的吧
----------------解决方案--------------------------------------------------------
哪位可以帮我解释下呀?
我正郁闷呢
拜托了
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
equals方法好象是比较两个对象的实际内容吧? 
难道就没有高手吗?这里?

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


----------------解决方案--------------------------------------------------------
个人看法仅供参考,
V1和V2是两个独立的对象,
只是V1.I和V2.I的值相同,
但是两个对象是不同的.
就象,有两张100元的钱,
他们的值是一样的
但是他们是两个不同的个体!


----------------解决方案--------------------------------------------------------
euqals方法实际上比较的是内存地址,v1、v2分别用new语句在堆里分配了内存,当然地址不会一样了,结果自然是false
----------------解决方案--------------------------------------------------------
equals难道是先比较内存地址 ,然后再比较内容吗?
我看内容是一样的呀 而且要比较地址的话 我们不是何以用"=="比较符吗?
----------------解决方案--------------------------------------------------------
equals 比较的是对象不是他的实际值.

----------------解决方案--------------------------------------------------------
  相关解决方案