黑马程序员技术交流社区

标题: 一个关于hashCode()的小问题…… [打印本页]

作者: 迷失的小Z    时间: 2014-12-20 22:58
标题: 一个关于hashCode()的小问题……
class A
{
}
class B extends A
{
      public void demo()
      {
             System.out.println(this.hashCode());
             System.out.println(super.hashCode());
      }
}
class Test
{
      public static void main(String[] args)
      {
            B b = new B();
            b.demo();
      }
}
为毛俩值一样,一直没想通……
作者: 夜空中的星    时间: 2014-12-20 23:00
挺好的   赞一个
作者: 迷失的小Z    时间: 2014-12-20 23:49
求牛人回答……
作者: 奋斗的蜗牛ksd    时间: 2014-12-21 01:18
super 和this  都只是引用

不可以代表对象,这句话切记。

老夫留一段代码,你调试几遍即可理解,

  1. class A
  2. {
  3.         String name;
  4.         A(String name)
  5.         {
  6.                 this.name=name;
  7.         }
  8. }
  9. class B extends A
  10. {
  11.        B(String name)
  12.        {
  13.                super(name);
  14.        }

  15.         public void demo()
  16.        {
  17.               System.out.println(this.toString());
  18.               System.out.println(super.toString());
  19.               System.out.println(new A("nihao").toString());
  20.        }
  21. }
  22. class Test
  23. {
  24.        public static void main(String[] args)
  25.        {
  26.              B b = new B("haha");
  27.              b.demo();
  28.              System.out.println(b);
  29.              A a=new A("nihao");
  30.              System.out.println(a);
  31.        }
  32. }
复制代码

作者: zqbemail    时间: 2014-12-21 13:05
我也不太明白这个问题,不知道这样理解对不对。
因为父类没有实例化,所以并没有在堆内存中产生,所以堆内存中的地址还是子类的,只不过子类中有一个区域,是父类的内容。
这样对吗?
作者: wez924612    时间: 2014-12-21 18:00
不懂帮顶!!!
作者: lwh316658735    时间: 2014-12-21 19:07
本帖最后由 lwh316658735 于 2014-12-21 19:09 编辑

这样和你说吧,hashCode()方法只针对哈希表才有作用。
如果用hashcode方法来比较自定义类,一定要覆盖hashCode方法才能起作用,不然他是不知道要怎么去比。

作者: 迷失的小Z    时间: 2014-12-22 14:28
lwh316658735 发表于 2014-12-21 19:07
这样和你说吧,hashCode()方法只针对哈希表才有作用。
如果用hashcode方法来比较自定义类,一定要覆盖hashC ...

你没看明白……我问的是关于对象在堆内存中的问题……
作者: 赵越海    时间: 2014-12-22 18:20
本帖最后由 赵越海 于 2016-7-8 17:35 编辑

         .
作者: 赵越海    时间: 2014-12-22 18:22
本帖最后由 赵越海 于 2016-7-8 17:35 编辑

         .




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