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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2013-7-31 23:29  /  8556 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

毕老师的基础教程里面不是有一个关于Object类的equals方法的视频吗可以看下,我是这样理解的别的类可以继承使用Object类里面的方法
//package com.DuoTaiDemo;
/*
  Object
是所有对象的直接或者间接的父类
该类定义的是所有对象都具备的功能
Object 类中已经提供了对对象是否相同的比较方法equals
如果自定义类中也有比较相同的功能,没有必要重新定义,
只要沿袭丰父类中的功能,建立自己特有的比较内容即可,这就是覆盖
*/
class Demo
{
        private int num;
        Demo(int num)
        {
                this.num=num;
        }
        /*public boolean compare(Demo d)
        {
                return this.num==d.num;
        }*/
        public boolean equals(Object obj)//Object obj=new Demo();
        {
                if(!(obj instanceof Demo))//用于判断要比较的类型是否一样
                        return false;
                //return this.num==obj.num;
                //这样不可以的因为Object中没有定义num我们把Object强制转换成Demo类型               
                Demo d=(Demo)obj;
                return this.num==d.num;
        }
        public String toString()
        {
                return "demo:"+num;
        }
}
class Person
{}
public class ObjectDemo
{
        public static void main(String[] args)
        {
                Demo d1=new Demo(4);
                Demo d2=new Demo(5);
                Person p=new Person();
                System.out.println(d1.equals(d2));
                System.out.println(d1.equals(p));//Demo类型的d1和Person类型的p进行比较
                System.out.println(d1.toString());//d1.toString()把d1对象转换成字符串
                System.out.println(d1.hashCode());//d1.hashCode()d1对象的哈希值
        }

}

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马