黑马程序员——枚举功能及演示

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

枚举(JDK1.5):

为什么要有枚举:在定义一个星期的星期几、一个人的性别的时候为了避免在编写源程序的时候出现星期八,性别Female/Mele等非法变量值的出现

用普通类实现枚举功能:1、私有的构造方法 2、定义公有静态常量作为元素 3可以提供若干公有方法或抽象方法

普通类实现枚举功能代码实例:

public class Sex{
	private Sex(){};
	public static Sex MAN = new Sex();
	public static Sex WOMAN = new Sex();
	public String toString(){
		return this == MAN ? "MAN" : "WOMAN";
	}
}
//如果其中包含有抽象方法就将每个静态常量分别定义为一个个匿名内部类来实现

简单的枚举类:

public enum Sex{
	MAN, WOMAN
}

枚举类中提供的方法:
	toString()、name()、ordinal()等
	静态:valueOf()、values()等

枚举类的内部构造方法:

public enum WeekDay{
	//必须将枚举的元素放在前面
	SUN(1), MON(), TUE,....;	
	//运行哪一个构造方法由元素所带的参数决定
	private WeekDay(){
		System.out.println("first");
	}
	private WeekDay(int x){
		System.out.println("second");
	}	
}

交通灯中使用的枚举:

public enum TrafficLamp{
	RED(30){
		public TrafficLamp nexLamp() {
			return GREEN;
		}
	},
	GREEN(45){
		public TrafficLamp nexLamp(){
			return YELLOW;
		}

	},
	YELLOW(5){
		public TrafficLamp nexLamp(){
			return RED;
		}
	},
	public abstract TrafficLamp nexLamp();
	private int time;
	private TrafficLamp(int time){
		this.time = time;
	}
}


---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------
用心-细心-专心-决心 学习就像爬大山,一步一步向前走 -态度决定高度-
原文地址:https://www.cnblogs.com/xianyou-liang/p/8503359.html