<黑马程序员>枚举

---------------------- android培训java培训、期待与您交流! ----------------------

为什么要有枚举

枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举就是让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这个目标。所以就有了枚举。

一个普通类如何实现枚举的功能?首先构造私有的方法;然后为每个元素分别用一个公用的静态成员变量表示,枚举元素必须位于枚举体中的最开始部分,枚举元素列表的后面要有分号与其他成员分割。把枚举中的成员方法或者变量等放在枚举元素的前面,编译器会报告错误;最后,可以编写若干个公用方法或抽象方法。枚举就相当一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法。枚举是一种特殊的类,其中的每个元素都是该类的一个实例对象。

下面是一个定义一个Weekday的枚举

 

package cn.itcast.day1;

 

public abstract class WeekDay {

    private WeekDay(){}

    public final static WeekDay SUN = new WeekDay(){

       @Override

       public WeekDay nextDay() {

           // TODO Auto-generatedmethod stub

           return MON;

       }

    };

    public final static WeekDay MON = new WeekDay(){

       @Override

       public WeekDay nextDay() {

           // TODO Auto-generatedmethod stub

           return SUN;

       }

    };

    //public final static WeekDay THU = newWeekDay();

    public abstract WeekDay nextDay();

/*

    public WeekDay nextDay(){

       if(this == SUN){

           return MON;

       }else{

           return SUN;

       }     

    }

*/

    public String toString(){

       return this == SUN?"SUN":"MON";

    }

}

采用抽象的方法定义nextDay就将大量的if。else语句转移成一个个独立的子类


---------------------- android培训java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值