黑马程序员技术交流社区

标题: 小纠结 [打印本页]

作者: 不破大地    时间: 2013-6-20 12:32
标题: 小纠结
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)的话,和原来的有啥不一样哈???。。。各位神仙请赐教。。。。






作者: 周朝    时间: 2013-6-20 14:36
复写了toString()方法,应该是不会打印哈希值的,你的代码我看了,也运行了,我打印的是toString().
作者: Super_Class    时间: 2013-6-20 17:06
public  String tostring()
{
  return this==SUN?"SUN":"MON";
}


大小写弄错了   toString()




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