1. 程式人生 > >4.JAVA語言基礎部分—列舉與反射

4.JAVA語言基礎部分—列舉與反射

列舉

//定義列舉
	enum MyEnum{
		ITEM_A,
		ITEM_B
	}
	public static void main(String[] args) {
		//values()獲取所列舉項的集合
		MyEnum[] enums=MyEnum.values();
		for (MyEnum myEnum : enums) {
			print(myEnum.toString());//輸出ITEM_A ITEM_B
		}
		
		//valueOf("字串")把字串轉為列舉
		MyEnum myEnum=MyEnum.valueOf("ITEM_B");
		print(myEnum.toString());//結果 ITEM_B
		
		//compareTo(b)比較兩者在定義時的順序,若b後於比較者返回-1,小於比較者時返回1,相同時為0
		int i=MyEnum.ITEM_A.compareTo(MyEnum.ITEM_B);
		System.out.println(i);//結果 1
		 
		//ordinal()得到索引位置,從0開始
		int index=MyEnum.ITEM_B.ordinal();
		System.out.println(index);//結果 1
	}

列舉也有構造方法,但必須使用private,常用於給列舉項加標籤說明功能

// 定義列舉
	enum MyEnum {
		ITEM_A("我是A啊"), ITEM_B("我是B呢"), ITEM_C(23); // 最後一項要寫;

		private String description;
		private int num;

		// 構造方法須用private
		private MyEnum(String descn) {
			description = descn;
		}

		private MyEnum(int i) {
			num = i;
		}

		// 對外提供獲取描述資訊
		public String getDesn() {
			return description;
		}

		public int getI() {
			return num;
		}
	}

	public static void main(String[] args) {
		// values()獲取所列舉項的集合
		MyEnum[] enums = MyEnum.values();
		for (MyEnum myEnum : enums) {
			print(myEnum.getDesn());// 我是A啊 我是B呢 null
		}
		System.out.print(MyEnum.ITEM_C.getI());// 23
	}

列舉

列舉

列舉

列舉