这是看祥老师视频时突然碰到的一个问题,还请大家瞧瞧
- class Weekday
- {
- private String name;
- private Weekday(String name)
- {
- this.name=name;
- }
- public static final Weekday MON=new Weekday("Monday");
- public static final Weekday SUN=new Weekday("Sunday");
- public Weekday nextday()
- {
- if(this==MON)
- return SUN;
- else
- return MON;
- }
- public String toString()
- {
- return this.name;
- }
- }
复制代码 祥老师说的是用抽象类实现枚举
我上面的代码是有问题的,很大的问题
这是我自己想出来的,根据是enum中可以这样实现
- enum weekday{
- SUN,MON(2),TUES,WES,THU,FRI,SAT;//静态成员变量,当类被调用是,静态成员变量自动调用其构造方法
- private int number;
- private weekday()
- {
- //System.out.println("i have no number!");
- }
- private weekday(int i)
- {
- this.number=i;
- System.out.println("my number is"+i);
- }
-
- }
复制代码 enum中的所有的静态实例变量可被看作weekday的子类,如SUN可以有他的私有field变量number
我的第一段代码就是根据这个想到的,但是不能实现,我想应该是
public static final Weekday MON=new Weekday("Monday");
public static final Weekday SUN=new Weekday("Sunday");
这连个句子的问题,可能涉及到什么理论上的问题
还请大家指教!
|
|