枚举

public class meiju {
	public static void main (String[] args){
		WeekDay weekday = WeekDay.FRI;
		System.out.println(weekday); //FRI
		System.out.println(weekday.name());  //FRI
		System.out.println(weekday.ordinal());   //所在的位置     5
		System.out.println(WeekDay.valueOf("SUN"));   //SUN
		System.out.println(WeekDay.valueOf("SUN").toString());	//SUN    返回带指定名称的指定枚举类型的枚举常量。
		System.out.println(WeekDay.values());	//[Lmeiju$WeekDay;@1bab50a
		System.out.println(WeekDay.values().length); 	//7
	}
	public enum WeekDay{  		//有没有加上括号都是默认初始无参构造器
		SUN(1){					//成员列表必须放在最前面
			public WeekDay nextDay(){
				return MON;
			}
		},MON(){
			public WeekDay nextDay(){			//可以定义的有成员变量,构造方法,普通方法,抽象方法
				return TUE;
			}
		},TUE{
			public WeekDay nextDay(){
				return WED;
			}
		},WED{
			public WeekDay nextDay(){
				return THI;
			}
		},THI{
			public WeekDay nextDay(){
				return FRI;
			}
		},FRI{
			public WeekDay nextDay(){
				return SAT;
			}
		},SAT{
			public WeekDay nextDay(){
				return SUN;
			}
		}	;	//这里的末尾可以不加上分号,如果后面还有数据就要加上了      
										// 枚举是类,枚举的成员列表代表的都是对象       在使用这个枚举的时候每一个都会初始化构造器
		WeekDay(){						//枚举是类,但是还是放在类里面,意义上是类,但是操作没有当做类来看待
			System.out.println("first");
		}
		WeekDay(int num){				//构造方法必须是私有的。。。
			System.out.println("second");
		}
		public abstract WeekDay nextDay();   //带有抽象方法的枚举
	}
}



你可能感兴趣的:(枚举)