黑马程序员——————张孝祥高新技术之枚举

1、枚举

枚举(Enum)就相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法。枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否侧,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。枚举是JDK1.5增加的一个新特性,它使得一个类只能取固定的值。以下是一个简单的枚举小程序。

public enum WeekDay{

       SUN,MON,TUE,WED,THU,FRI,SAT;

}

枚举元素必须位于枚举体中的最开始部分,枚举元素列表的后要有分号与其他成员分隔。如果把枚举中成员方法或变量等放在枚举元素的前面,编译器就会报告错误。枚举还可以带有构造方法,但是构造方法必须定义成私有的。如果有多个构造方法,可以在枚举元素后面加上参数列表用来选择构造方法。下面是一个带有构造方法的枚举。

public enum WeekDay{

       SUN(1),MON(1),TUE,WED,THU,FRI,SAT;

       private WeekDay(){System.out.println("1111");}

       private WeekDay(int day){System.out.println("2222");}

}

枚举中还可以带有抽象方法,下面定义一个枚举实现以下功能:

   定义枚举TrafficLamp,实现抽象的next方法:每个元素分别是由枚举类的子类来生成的实例对象,这些子类采用类似内部类的方式进行定义。最后增加上表示时间的构造方法。

public enum TrafficLamp{

       RED(30){

 

           @Override

           public TrafficLamp nextLamp() {

              // TODO Auto-generated method stub

              return GREEN;

           }

        },

       GREEN(45){

 

           @Override

           public TrafficLamp nextLamp() {

              // TODO Auto-generated method stub

              return YELLW;

           }

        },

        YELLW(5){

 

           @Override

           public TrafficLamp nextLamp() {

              // TODO Auto-generated method stub

              return RED;

           }

       

        };

       public abstract TrafficLamp nextLamp();

       private int time;

       private TrafficLamp(int time){this.time=time;}

    }

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值