荔园在线

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

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


发信人: cfans (亮亮), 信区: Java
标  题: [合集]请高手分析两个程序的结果!
发信站: 荔园晨风BBS站 (2005年06月30日16:36:49 星期四), 站内信件

☆   1  ──────────── 我是分割线 ─────────────────☆
发信人: heroness (红尘浪子), 信区: Java
标  题: 请高手分析两个程序的结果!
时  间: Wed Mar 30 20:33:20 2005

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

运行结果为:true

而下面一个:

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

运行结果为:false
       why?


☆   2  ──────────── 我是分割线 ─────────────────☆
发信人: mmkiller (PPMM makes me go around), 信区: Java
标  题: Re: 请高手分析两个程序的结果!
时  间: 2005年03月30日20:41:42 星期三

 Integer这个Class本身应该重载了equals函数为比较他们的数值了吧?




☆   3  ──────────── 我是分割线 ─────────────────☆
发信人: bach (时光倒转4年), 信区: Java
标  题: Re: 请高手分析两个程序的结果!
时  间: 2005年03月30日20:46:08 星期三

第一个是n1和n2这二个对象的比较
第二个比较也是二个对象的比较,但是这二个对象不是同一个
只是他们的一个值一样

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

运行结果为:true

而下面一个:

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

运行结果为:false
       why?


☆   4  ──────────── 我是分割线 ─────────────────☆
发信人: Kenniel (here goes), 信区: Java
标  题: Re: 请高手分析两个程序的结果!
时  间: 2005年03月30日20:48:34 星期三

全中



☆   5  ──────────── 我是分割线 ─────────────────☆
发信人: presses (云仔), 信区: Java
标  题: Re: 请高手分析两个程序的结果!
时  间: 2005年03月30日21:30:11 星期三

把overriding和overloading搞反了



☆   6  ──────────── 我是分割线 ─────────────────☆
发信人: heroness (红尘浪子), 信区: Java
标  题: Re: 请高手分析两个程序的结果!
时  间: Wed Mar 30 21:34:29 2005

听不懂啊



☆   7  ──────────── 我是分割线 ─────────────────☆
发信人: mmkiller (PPMM makes me go around), 信区: Java
标  题: Re: 请高手分析两个程序的结果!
时  间: 2005年03月30日21:53:33 星期三

  oh yes..我经常弄糊涂。。
 应该是overriding.




☆   8  ──────────── 我是分割线 ─────────────────☆
发信人: vbiao (阿标), 信区: Java
标  题: Re: 请高手分析两个程序的结果!
时  间: Wed Mar 30 22:03:09 2005

Integer类中的equals方法是重载了Object类的equals方法的,看它们是如何定义的就
清楚了

Object类中的equals方法的定义:
public boolean equals(Object obj) {
        return (this == obj);
}

Integer类中equals方法的定义:
public boolean equals(Object obj) {
        if (obj instanceof Integer) {
 }



☆   9  ──────────── 我是分割线 ─────────────────☆
发信人: crycz (打印刻录.复读机/VCD/CD/MP3), 信区: Java
标  题: Re: 请高手分析两个程序的结果!
时  间: 2005年03月31日11:32:09 星期四

  应该是第一个是n1和n2这二个对象中值的比较
  第二个比较也是二个对象的比较,但是这二个对象不是同一个
  只是他们的一个值一样.和它们中的i完全没有关系...


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

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