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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hollywood2014 中级黑马   /  2014-10-7 22:17  /  955 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这是看祥老师视频时突然碰到的一个问题,还请大家瞧瞧
  1. class Weekday
  2. {
  3.         private String name;
  4.         private Weekday(String name)
  5.         {
  6.                 this.name=name;
  7.         }
  8.          public static final Weekday MON=new Weekday("Monday");
  9.          public static final Weekday SUN=new Weekday("Sunday");
  10.          public Weekday nextday()
  11.          {
  12.                  if(this==MON)
  13.                          return SUN;
  14.                  else
  15.                          return MON;
  16.          }
  17.          public String toString()
  18.          {
  19.                  return this.name;
  20.          }
  21. }
复制代码
祥老师说的是用抽象类实现枚举

我上面的代码是有问题的,很大的问题
这是我自己想出来的,根据是enum中可以这样实现
  1. enum weekday{
  2.         SUN,MON(2),TUES,WES,THU,FRI,SAT;//静态成员变量,当类被调用是,静态成员变量自动调用其构造方法
  3.         private int number;
  4.         private weekday()
  5.         {
  6.                 //System.out.println("i have no number!");
  7.         }
  8.         private weekday(int i)
  9.         {
  10.                 this.number=i;
  11.                 System.out.println("my number is"+i);
  12.         }
  13.        
  14. }
复制代码
enum中的所有的静态实例变量可被看作weekday的子类,如SUN可以有他的私有field变量number

我的第一段代码就是根据这个想到的,但是不能实现,我想应该是
public static final Weekday MON=new Weekday("Monday");
public static final Weekday SUN=new Weekday("Sunday");
这连个句子的问题,可能涉及到什么理论上的问题
还请大家指教!


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马