A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马浩 中级黑马   /  2012-5-1 14:24  /  2056 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Demo
{
        int num=100;
}

class Demo1
{
        public static void main(String[]args)
        {
                Demo D1=new Demo( );
                Demo D2=new Demo( );
               
                System.out.println(D1.num+"   "+D2.num);
                        System.out.println(D1.equals(D2));//为什么结果是false啊
        }
}

点评

关于==和equals()的问题,求解 里面有很多答案 http://bbs.itheima.com/thread-13485-1-1.html  发表于 2012-5-2 09:52

6 个回复

倒序浏览
Demo类没有重写equals()方法,而是继承Object类的equals()方法,其内部是使用的"=="比较,比的是地址,所以为false.
回复 使用道具 举报
本帖最后由 黄业凌 于 2012-5-1 15:00 编辑

当然是false了
class Demo
{
        int num=100;
}

class Demo1
{
        public static void main(String[]args)
        {
                Demo D1=new Demo( );//new 在堆内存中开辟一块 D1的空间
                Demo D2=new Demo( );//new 在堆内存中开辟一块 D2的空间
               
                System.out.println(D1.num+"   "+D2.num);
                        System.out.println(D1.equals(D2));//为什么结果是false啊
                        //比较两块空间是不是同一引用 使用 "=="
                        //equlas()方法是比较序列是否相同

        }
}
回复 使用道具 举报
首先,你的代码编译是不通过的。
其次,D1和D2是两个不同的对象。
回复 使用道具 举报
于潇 发表于 2012-5-1 15:32
首先,你的代码编译是不通过的。
其次,D1和D2是两个不同的对象。

首先,编译是通过的,不然我也不会说是false啊。
其次,就因为不是相同的对象,所以才用equals啊
回复 使用道具 举报
马浩 发表于 2012-5-1 16:24
首先,编译是通过的,不然我也不会说是false啊。
其次,就因为不是相同的对象,所以才用equals啊 ...

那就是你在这里写错了。好好看看你的主函数哪里不对
回复 使用道具 举报
class Demo
{
        int num=100;
}
class Demo1
{
        public static void main(String[]args)
        {
                //此处表示创建了2个对象,在堆内存中开辟了2个对象并有2个地址值
                //将地址值复制个D1和D2.D1指向0x0046  ,D2指向0x0056
                Demo D1=new Demo( );
                Demo D2=new Demo( );
                System.out.println(D1.num+"   "+D2.num);
                System.out.println(D1.equals(D2));//为什么结果是false啊
          //因为此处比较的是对象的地址值,equals的方法是来自Object类的
         //在内存中的(D1指向0x0046  ,D2指向0x0056)你觉得地址值一样吗?,o了
     
   }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马