运用普通类模拟实现枚举功能

来源:互联网 发布:我知女人心下载 编辑:程序博客网 时间:2024/04/29 00:28

需求:通过运用普通类WeekDay 来实现枚举WeekDay 功能;

步骤:

1.私有构造方法;

2.将每一个元素分别用一个公有的静态成员变量表示;

3.创建公有方法访问;

class WeekDay{    private WeekDay()    {}    public final static WeekDay MON = new WeekDay();    public final static WeekDay SUN = new WeekDay();
    public WeekDay nextDay()
    {
      if(this == MON)
        return SUN;
      else
        return MON;
    }
   .......}
上述代码中,如果静态成员变量过多,会造成if.else语句过于冗长,

可通过抽象类,抽象方法将If.esle 语句转化为一个独立的类。

优化:

abstract class  WeekDay{private WeekDay(){}public final static WeekDay MON = new WeekDay(){public WeekDay nextDay(){return SUN;}};public final static WeekDay SUN = new WeekDay(){public WeekDay nextDay(){return MON;}};public abstract WeekDay nextDay();
}



0 0
原创粉丝点击