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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 疯狂的大猫 中级黑马   /  2015-5-13 16:13  /  542 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. Object:是所有的对象的直接后者间接父类,传说中的上帝。
  3. 该类中定义的肯定是所有对象都具备的功能。

  4. Object类中已经提供了对对象是否相同的比较方法。

  5. 如果自定义类中也有比较相同的功能,没有必要重新定义。
  6. 只要沿袭父类中的功能,建立自己的特有的比较内容即可。这就是覆盖。
  7. */


  8. class Demo //extends Object
  9. {
  10.         private int num;
  11.         Demo(int num)
  12.         {
  13.                 this.num = num;
  14.         }

  15.         public boolean equals(Object obj) //Object obj = new Demo();
  16.         {
  17.                 if (!(obj instanceof Demo))
  18.                 {
  19.                         return false;
  20.                
  21.                 }
  22.                 Demo d = (Demo)obj;

  23.                 return this.num == d.num;
  24.         }


  25.         public String toString()
  26.         {
  27.                 return "demo:" +num;
  28.         }
  29. }

  30. class Person
  31. {
  32. }



  33. class  ObjectDemo
  34. {
  35.         public static void main(String[] args)
  36.         {
  37.                 Demo d1 = new Demo(4);
  38.                 System.out.println(d1);  //输出语句打印对象时,会自动调用对象的toString方法。打印对象的字符串表现形式。
  39.                
  40.                
  41.                 Demo d2 = new Demo(7);
  42.             System.out.println(d2.toString());

  43.        
  44.                 //System.put.println(c.getName);
  45.                 //System.put.println(c.getName()+"@@"+Integer.toHexString(d1.hashCode()));
  46.                 //System.put.println(d1.toString());

  47.                 //Person p = new Persom();
  48.                 //System.out.println(d1.equals(p));


  49.         }
  50. }
复制代码

2 个回复

倒序浏览
为什么打印都d1和d2,d1可以不加toSrtring?
回复 使用道具 举报
因为你在Demo类里已经重写了toString方法。并且你是使用Demo类创建对象。所以当然也不会再调用Object里的toString。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马