此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【nick207】截止到2008-07-05 22:22:51的历史汇总数据(不包括此帖):
发帖的总数量:2                        发帖的总分数:40                       
结贴的总数量:0                        结贴的总分数:0                        
无满意结贴数:0                        无满意结贴分:0                        
未结的帖子数:2                        未结的总分数:40                       
结贴的百分比:0.00  %               结分的百分比:0.00  %                  
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html

解决方案 »

  1.   

    Object中equals方法实现如下:
    public boolean equals(Object obj) {
    return (this == obj);
        }
    比较两个对象是否相同,而在实际情况中,大部分是比较对象的内容是否相同,判断两个对象是否相同用==,判断对象的内容是否相同用equals(),这是就要实现自己的equals。
    举个例子,String中重写了equals方法,用来比较两个字符串是否相同。
    看个简单的情况,应该能明白了:
    public class Test {
        public static void main(String[] args) {
            Object o1=new Object();
            Object o2=new Object();
            System.out.println(o1==o2);
            System.out.println(o1.equals(o2));
            String str1=new String("abc");
            String str2=new String("abc");
            System.out.println(str1==str2);
            System.out.println(str1.equals(str2));
        }
    }
    对于Object的对象o1和o2,应为不是相同的对象,所以前两个输出语句的结果都是false
    对于String类型的对象str1和 str2,也不是相同的对象,所以str1==str2是false,而因为两个对象内容相同,所以str1.equals(str2)为true
    自己再体会一下。
      

  2.   

    还有要注意重写 equals方法时一般要同时重写hashCode方法,来保证equals为true的两个对象具有相同的hashcode。