怎么么有人解释第三个的错误原因啊,
        Number n3 = new Number();
        Number n4 = new Number();
        n3.i = 30;
        n4.i = 30;
        System.out.println(n3.equals(n4));//(3)false不明白什么意思....
按照你们的理论,equals比较的是数值,n3和n4的数值都是30呀.....
----------------解决方案--------------------------------------------------------
怎么么有人解释第三个的错误原因啊,
        Number n3 = new Number();
        Number n4 = new Number();
        n3.i = 30;
        n4.i = 30;
        System.out.println(n3.equals(n4));//(3)false不明白什么意思....
按照你们的理论,equals比较的是数值,n3和n4的数值都是30呀.....
你自己又没有重写equals方法,你这样调用默认是Object给你 实现的,Object怎么知道你的相等 是i相等呢
所以,你得为你的Number类写一个equals方法
public boolean equals(Object other){
    if(other instanceof Number){
        Number n=(Number)other;
        return n.i==this.i;
    }else{
        return false;
    }
}													
----------------解决方案--------------------------------------------------------
						
		
											
还有一点你要记住,==如果是比较对象,它永远是比较对象的地址是不是一样,而不会比较它们内部的值是否一样,这一点我们不能重写
但是equals我们也可以重写,赋给它新的含 义
----------------解决方案--------------------------------------------------------
谢谢楼上的,学到知识了!!!
----------------解决方案--------------------------------------------------------
不用谢,大家一起学习
----------------解决方案--------------------------------------------------------
刚才看了张孝祥的教程视频,正好有这个知识点,现在印象更加深刻了...
谢谢楼上的...
----------------解决方案--------------------------------------------------------