荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: cfans (亮亮), 信区: Java
标  题: [合集]这个程序运行结果为什么是 false ????
发信站: 荔园晨风BBS站 (2005年06月30日16:35:51 星期四), 站内信件

☆   1  ──────────── 我是分割线 ─────────────────☆
发信人: heroness (红尘浪子), 信区: Java
标  题: 这个程序运行结果为什么是 false ????
时  间: Wed Mar 30 18:17:29 2005

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));
  }
}


☆   2  ──────────── 我是分割线 ─────────────────☆
发信人: Dicyson (快乐很难), 信区: Java
标  题: Re: 这个程序运行结果为什么是 false ????
时  间: 2005年03月30日19:44:09 星期三

    equal 比较的是变量的地址是否相等...  new了两个Value的对象
     代表不同地址 肯定是false了!!



☆   3  ──────────── 我是分割线 ─────────────────☆
发信人: heroness (红尘浪子), 信区: Java
标  题: Re: 这个程序运行结果为什么是 false ????
时  间: Wed Mar 30 20:28:44 2005

可是这个程序的结果为:true 啊!

public class EqualsMethod {
  public static void main(String[] args) {
    Integer n1 = new Integer(47);
    Integer n2 = new Integer(47);
    System.out.println(n1.equals(n2));
  }
} /



☆   4  ──────────── 我是分割线 ─────────────────☆
发信人: Dicyson (快乐很难), 信区: Java
标  题: Re: 这个程序运行结果为什么是 false ????
时  间: 2005年03月30日20:41:17 星期三

    equals()这个行为比较的是references ..
    在一般的标准库大多数的class都复写了equals()..
    而你自己写的class没有  复写 equals()  所以它比较的是references
    而不是对象本身!!


☆   5  ──────────── 我是分割线 ─────────────────☆
发信人: heroness (红尘浪子), 信区: Java
标  题: Re: 这个程序运行结果为什么是 false ????
时  间: Wed Mar 30 21:28:01 2005

Thank you very much!



☆   6  ──────────── 我是分割线 ─────────────────☆
发信人: crycz (打印刻录.复读机/VCD/CD/MP3), 信区: Java
标  题: Re: 这个程序运行结果为什么是 false ????
时  间: 2005年03月31日11:58:33 星期四

这个程序比较的是Value的两个对象..创建了两个Value对象之后给
成员变量i赋值..equals的比较和i没有关系..当然结果为false




☆   7  ──────────── 我是分割线 ─────────────────☆
发信人: yeyeye (好吗?!?), 信区: Java
标  题: Re: 这个程序运行结果为什么是 false ????
时  间: 2005年04月03日13:53:17 星期天


我也是这样认为的.看了上面大家的讨论.


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店