1. 程式人生 > >Java enum 列舉型別使用舉例

Java enum 列舉型別使用舉例

/** Java 列舉型別 用法介紹**/
public class Test_11{

	//1.列舉型別的建立:建立了一個名字為ShootingMode(拍攝模式)的列舉型別,它具有5個具名值
	public enum ShootingMode{
		COMMON, SMART, HDR, SMILE, SELF_TIMER
	}
	
	public static void main(String[] args){
	
		//2.使用enum: 建立該型別的引用,並將其賦值給某個例項
		ShootingMode mode = ShootingMode.SMART;
		
		//3.toString():編譯器自動新增的特性。很方便的顯示例項的名稱
		System.out.println(mode);	//Output: SMART
		
		//4.ordinal(): 表示某個特定enum常量的宣告順序
		System.out.println(mode.ordinal());	//Output: 1
		
		//5.static values(): 也是編譯器新增的特性,按照enum常量的宣告順序,組成陣列
		for(ShootingMode m: ShootingMode.values()){
			System.out.println(m); 
		}
		
		//6.在switch語句中的應用
		Test_11
			t1 = new Test_11(ShootingMode.COMMON),
			t2 = new Test_11(ShootingMode.SMILE),
			t3 = new Test_11(ShootingMode.SELF_TIMER);
			t1.mode();
			t2.mode();
			t3.mode();
		
	}
	
	private ShootingMode shootingMode;
	public Test_11(ShootingMode m){
		shootingMode = m;
	}
	void mode(){
		System.out.print("shootingMode = ");
		switch(shootingMode){
			case COMMON:
				System.out.println("普通模式");
				break;
			case SMART:
				System.out.println("智慧模式");
				break;
			case HDR:
				System.out.println("逆光模式");
				break;
			case SMILE:
				System.out.println("笑臉模式");
				break;
			case SELF_TIMER:
				System.out.println("自拍模式");
				break;
			default:
		}
	}
}