1. 程式人生 > >Java學習之列舉

Java學習之列舉

列舉型別是Java 5中新增特性的一部分,它是一種特殊的資料型別,之所以特殊是因為它既是一種類(class)型別卻又比類型別多了些特殊的約束,但是這些約束的存在也造就了列舉型別的簡潔性、安全性以及便捷性。下面先來看看什麼是列舉?如何定義列舉?

1 列舉的定義
格式:

Enum 列舉型別名{
列舉值,
    列舉值,
    ......
   列舉值;
}

例子:定義列舉,表示四季(春夏秋冬)。
2種方式: 普通的列舉,帶構造方法的列舉

package cn.njit.meiju;
/****
 * 列舉型別
 * @author Administrator
 *
 */
public class Demo_1015 {
	public static void main(String[] args) {
		Season sea=Season.Fall;
		System.out.println(sea);
		Season_2 s1=Season_2.Autumn;
		System.out.println(s1.getSea());
	}
}

enum Season{
	Spring,Summer,Fall,Winter;	
}

enum Season_2{
	Spring("春天"),
	Summer("夏天"),
	Autumn("秋天"),
	Winter("冬天");
	private String sea;
	private Season_2(String sea) {
		this.sea=sea;
	}
	public String getSea() {
		return sea;
	}
	public void sayHello() {
		System.out.println("Hello,luowen");
	}
}

在這裡插入圖片描述

2 列舉實現介面
由於Java單繼承的原因,enum類並不能再繼承其它類,但並不妨礙它實現介面,因此enum類同樣是可以實現多介面的。

package cn.njit.meiju;

	public enum Day implements Show{
		MONDAY("星期一"), 
		TUESDAY("星期二"), 
		WEDNESDAY("星期三"), 
		THURSDAY("星期四"), 
		FRIDAY("星期五"), 
		SATURDAY("星期六"), 
		SUNDAY("星期日");// 記住要用分號結束
		String desc;
		private Day(String desc) { //把建構函式申明為private,可以防止被例項化
			this.desc=desc;
		}
		
		public String getDesc(){
	        return desc;
	    }

		@Override
		public void show() {
			System.out.println("desc:"+desc);	
			
		}
	
	public static void main(String[] args) {
		Day d=Day.MONDAY;
		d.show();


	}
}

在這裡插入圖片描述