狼人
走在SCJP的路上
posts - 12,  comments - 14,  trackbacks - 0

 

 1public class ObjectEqualsTest {
 2    public static void main(String[] args) {
 3        Number int1 = new Number(5);
 4        Number int2 = new Number(5);
 5        // int1.equals(int2)为false
 6        System.out.println(int1.equals(int2));
 7        // int1 == int2为false
 8        System.out.println(int1 == int2);
 9    }

10}

11
12class Number {
13    private final int inta;
14    public Number(int inta) {
15        this.inta = inta;
16    }

17}

 

 1public class ObjectEqualsTest {
 2    public static void main(String[] args) {
 3        Integer int1 = new Integer(5);
 4        Integer int2 = new Integer(5);
 5        // int1.equals(int2)为true
 6        System.out.println(int1.equals(int2));
 7        // int1 == int2为false
 8        System.out.println(int1 == int2);
 9    }

10}
为什么会出现int1.equals(int2)  = true,是因为在Integer类中overrides了equals方法
1    public boolean equals(Object obj) {
2    if (obj instanceof Integer) {
3        return value == ((Integer)obj).intValue();
4    }

5    return false;
6    }
而在Number对象的equals方法的Object对象的equals方法
1    public boolean equals(Object obj) {
2    return (this == obj);
3    }
posted on 2009-01-04 22:43 狼人 阅读(153) 评论(0)  编辑  收藏 所属分类: Java

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 

<2009年1月>
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

留言簿

随笔分类

随笔档案

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜