黑马程序员技术交流社区

标题: 这两个一样的程序,为什么结果不同?求解释? [打印本页]

作者: 待解封的小刀    时间: 2014-7-17 11:16
标题: 这两个一样的程序,为什么结果不同?求解释?
class Demo3
{
        private int age;
        Demo3(int age)
        {
                this.age=age;
       
        }
        public boolean equals(Demo3 b)
        {
                return this.age==b.age;
        }
}
class Demo2Equals
{
        public static void main(String[] args)
        {
                Demo3 b=new Demo3(5);
                Demo3 c=new Demo3(5);
                System.out.print(b.equals(c));
       
        }
}
结果 是true
class Demo
{       
        private int[] arr;
        Demo(int[] arr)
        {
                this.arr=arr;
       
        }
       
        public boolean equals(Demo c)
        {                                
               
               
               
                return this.arr==c.arr;

       
}
class ArrEquals
{
        public static void main(String[] args)
        {        int arr1[]={1,2,3};
                int arr2[]={1,2,3};
               
                 Demo p1=new Demo(arr1);
                 Demo p2=new Demo(arr2);
               
               
                System.out.println(p1.equals(p2));
       
       
        }
结果是false  
这两个有什么不同吗?为什么第二个不成立 而第一个成立了








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2