黑马程序 枚举

来源:互联网 发布:淘宝网上怎么搜索买烟 编辑:程序博客网 时间:2024/05/16 07:24

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

枚举:

       枚举相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法。
枚举元素必须位于枚举体中的最开始部分,枚举元素列表的最后要有分号与其他成员分隔。
把枚举重的成员方法或变量等放在枚举元素的前面,编译报错

带构造方法的枚举:

构造方法必须定义成私有的
如果有多个构造方法,该如何选择哪个构造方法呢?--参数
枚举元素RED和RED()的效果一样,都是调用默认的构造方法

枚举只有一个成员(元素)时,就可以作为一种单例的实现方式。 
在枚举当中声明的所有变量默认都是public static final修饰,但是前面不可以显示的加这些修饰符。

TrafficLamp枚举:

public class EnumTest {/** * @param args */public static void main(String[] args) {TrafficLamp lamp= TrafficLamp.GREEN;TrafficLamp lamp1= TrafficLamp.RED;System.out.println(lamp.name());//GREENSystem.out.println(lamp.ordinal());//1System.out.println(TrafficLamp.valueOf("RED"));//REDTrafficLamp[] lamps = TrafficLamp.values (); //values() 方法返回的是枚举类所有的元素集合for  (TrafficLamp lamp2 : lamps){System. out .print(lamp2.name());//REDGREENYELLOW}}public enum TrafficLamp{//定义枚举TrafficLampRED(30){public TrafficLamp nextLamp(){return GREEN;}//每个元素分别由枚举的子类生成实例对象,子类采用类似内部类的方式进行定义},GREEN(30){public TrafficLamp nextLamp(){return YELLOW;}},YELLOW(3){public TrafficLamp nextLamp(){return RED;}};public abstract TrafficLamp nextLamp();private int time;private TrafficLamp(int time){this.time=time;}private TrafficLamp(){};}}