我想你好好把java的基类研究一下这些问题就都解决了

解决方案 »

  1.   

    看了你说的贴子了,其实那里说的很清楚了
    我想可以这么理解,我们所操作的都是对象的引用。
    例如 A a = new A();
    我们可以把a看作一个引用,他只是指向这个实际的A对象。
    A b = new A();
    b是另一个引用,如果第一个对象的地址为xxxx,第二个对象的地址肯定和第一个对象的地址不同,因为他们都是new出来的,每个都占用不同的内存区域。假如第二个对象的地址为yyyy.
    这时候如果比较a==b,那么肯定是false,因为他们比较的是对象的地址,即xxxx != yyyy.
    要比较对象是否相等,应该用equal方法,equal方法,比较的不是对象的地址,而是比较对象内部变量的值是否相等,而且有的类没有实现equal方法,那么你调用equal方法,其实调用的是Object类的equal方法。这样比较出来的结果也是不对的,
    这里的问题挺多,建议你买本pratical java,或者effictive java,来看看
    那上面说的挺明白。