equals()方法本来是Object类里面的,我们的类都是要自己实现这个方法的,至于怎么实现其实都是取决于自己的,你想怎么样就怎么样的!if ( getClass() != otherObject.getClass() )
   return false;
这个是得到Class类对象,Class是一个类的源数据,如果两个对象是同一个类的对象那么他们的Class对象就是一样的。所以这个条件判断就是看他们是不是同一个类的对象

解决方案 »

  1.   

    可能是FLYWEIGHT模式的应用吧,譬如Character,可能java在实现的时候,所有的new Character('a')都是指向同一个对象的,所以只要==比较就行了
      

  2.   

    java中如何调用activeX控件?(非jsp和applet)谢谢
      

  3.   

    J2SE1.4.2里Character的equals源码是这样的:
        public boolean equals(Object obj) {
            if (obj instanceof Character) {
                return value == ((Character)obj).charValue();
            }
            return false;
        }
    value是Character的一个char私有域,所以没什么问题
      

  4.   

    to  mor(天蓝,天蓝) :
    我的是 java 1.5 ,我给的代码无误的。to jFresH_MaN(我本将心照明月,奈何明月照沟渠!):
    不是没创建一个类的对象,都要为其在堆上分配空间吗?(即使是同一个类,但先后初始化的对象会是同一个内存地址吗?) 而 == 不是比较对象的地址的吗?
      

  5.   

    Java在每个对象中插入一个指向class对象的引用,class对象中保存着一个类的相关信息,如:类名超类等。在一个JVM的实例中,每一个已装载的class都存在一个唯一的实例因此,使用==判断是没有问题的
      

  6.   

    同意jFresH的说发
    原始的equals方法就是对两个对象进行全面的比较
    不仅仅是属性和方法甚至包括地址之类的
    但是在我们自己的类中又可以重新定义这个方法
    比如String中的equals方法就是比较字符序列是不是一样的
      

  7.   

    Class中的getClass()得到一个运行时对象,
    对于同一个类而言,不管你用多少个这个类的实例
    来调用getClass()方法,我觉得在JVM中只有
    一份这个类的运行时对象,请看下面:
    ----------------------------------------
    class ClassTest{
    int i;
    ClassTest(int i){
    this.i = i;
    }
    }class DemoArrays{
         public static void main(String[] args){
           ClassTest o1 = new ClassTest(1);
           ClassTest o2 = new ClassTest(2);
           System.out.println(
               o1.getClass().equals(o2.getClass()));//true
           System.out.println(
               o1.getClass() == ClassTest.class);  //true
        }
    }
    ------------------------------------------
    Class类为final,构造函数为private,只能是JVM才能
    调用它的构造函数新建一个Class类的对象,至于怎么
    实现,我们也不知道。另外Class没有override equals方法,
    对于同一个对象来说,"=="运算会一定会返回true
      

  8.   

    不好意思,上面第一句是Object的getClass()
      

  9.   

    谢谢各位的热心。总结一下:就是 避免大量同一类的相同内容的对象的开销(如耗费内存),使大家共享一个类对象(元类). 这种模式就是 FlyWeight模式。