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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 不破大地 中级黑马   /  2013-6-20 12:32  /  1239 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class enumeration
{
      public static void main(String[] args)
      {
       WeekDay weekday=WeekDay.SUN;
       System.out.println(weekday.nextday());
      
      }
}
class WeekDay
{
private WeekDay(){}
public final static WeekDay SUN=new WeekDay();
/*
{
  public WeekDay nextday()
  {
   return MON;
  }
};
*/
public final static WeekDay MON=new WeekDay();
/*
{
  public WeekDay nextday()
  {
   return SUN;
  }
};
*/
public WeekDay nextday()
{
  if(this==SUN)
  {
   return MON;
  }
  else
  {
   return SUN;
  }
}

//public abstract WeekDay nextday();
public  String tostring()
{
  return this==SUN?"SUN":"MON";
}
}

(1)在以上代码中,为啥我打印的是哈希值啊,明明是和张老一样的。。
(2)如果将nextday()方法的返回值改成String类型的就可以了
(3)将返回值改完后,下面的tostring方法应该可以省略。
如果这样改成(2)和(3)的话,和原来的有啥不一样哈???。。。各位神仙请赐教。。。。





评分

参与人数 1技术分 +1 收起 理由
Super_Class + 1

查看全部评分

2 个回复

倒序浏览
复写了toString()方法,应该是不会打印哈希值的,你的代码我看了,也运行了,我打印的是toString().
回复 使用道具 举报
public  String tostring()
{
  return this==SUN?"SUN":"MON";
}


大小写弄错了   toString()
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马