黑马程序员技术交流社区

标题: 重写object下的equals,为什么这么实现 [打印本页]

作者: 精灵来了    时间: 2015-5-23 23:23
标题: 重写object下的equals,为什么这么实现
class Demo
{
        public int num;
        Demo(int num)
        {
                this.num=num;
        }

        //equals在object中比较的内存地址值,我们想要比较其中的数据,复写
        public boolean equals(Object obj)   
        {
                Demo d=(Demo)obj;   
                return this.num==d.num;
        }
}
作者: niuapp    时间: 2015-5-23 23:48
本帖最后由 niuapp 于 2015-5-23 23:53 编辑

this.num == d.num;这条语句就是比较两个int值是否相等

eques应该比较两个值或是两个字符串是否一样才有意义,
所以在自定义的类中,重写eques可以用来比较本类成员变量的值是否一样;

作者: Amu    时间: 2015-5-23 23:52
打个简单的设想,你调用这方法时是不是比较两个Demo对象,即d.equals(obj);只有在类中复写了Object中的equals方法,它们才能比较对象的特有数据




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