关于枚举

本文详细介绍了Java中枚举类型的使用方法,包括基本语法、枚举元素的特性、带构造方法及成员方法的枚举,并展示了如何利用枚举实现简单的状态机逻辑。

public class EnumTest {

/**
* 枚举:
* 相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法
* 枚举元素必须位于枚举体中的最开始部分,枚举元素列表后要有分号与其他成员分开。
* 枚举只有一个成员的时候,就可以作为一种单例的实现方式
* @param args
*/
public static void main(String[] args) {
WeekDay weekDay1 = WeekDay.SUN;
System.out.println(weekDay1);//SUN
System.out.println(weekDay1.name());//SUN
System.out.println(weekDay1.ordinal());//得到顺序
System.out.println(WeekDay.valueOf("SAT"));//SAT
System.out.println(WeekDay.values().length);//长度 7


}
 /**
         * 带构造方法的枚举:
         * 构造方法必须定义成私有的
         * 如果有多个构造方法该调用那个?
         * 枚举元素MON和MON()的效果都一样,都是调用默认的构造方法
         * 
         * 
         */
public enum WeekDay{
SUN(1),MON,TUE,WED,THI,FIR,SAT;
private WeekDay(){};
private WeekDay(int i){};
}
    
      

/**
* 带方法的枚举:
* 每个元素分别是由枚举类的子类来生成的实例对象,
* 这些子类采用类似内部类的方式定义
* 以下 RED ,GREEN,YELLOW都是TrafficLamp 的子类,
*/
public enum TrafficLamp{
RED(30){
public TrafficLamp nextLamp() {
return GREEN;
}
},
GREEN(40){
public TrafficLamp nextLamp() {
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp nextLamp() {
return RED;
}
};
public abstract TrafficLamp nextLamp();
private int time;
private TrafficLamp(int time){this.time = time;} 
}


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值