<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>
<![endif]-->
枚舉
枚舉就是要把某一類型的變數只能為某些特定的值中的一個,這樣可以把錯誤在編譯階段就顯現出來,這是比普通變數優越的地方.
用普通類類比枚舉類
class WeekDay(){
private WeekDay(){}//構造方法為私人,這樣就不能在外部建立執行個體對象
public static WeekDay SUN = new WeekDay();
public static WeekDay MON = newWeekDay();//建立公有的靜態本身類型的變數,即自身的執行個體對象
public String toString(){}//覆蓋toString方法
}
new xxx(){},若xxx為一個普通類,則表示xxx的子類,若xxx是抽象類別,{}內寫這個子類的實現的抽象方法;若xxx為一個介面類,則表示xxx的實作類別,{}內為介面方法的實現代碼
枚舉類以關鍵字enum來定義,.在定義時指定元素列表,枚舉類的執行個體對象只能是列表中的一個元素.若枚舉類內只有元素列表時,則可以不以;結尾.
若枚舉類有構造方法時,構造方法只能是私人的且位於元素列表之後.若有多個構造方法時,元素可以指定參數列表以表明使用哪個構造方法.
enum sexy{
FAMALE(12),MALE(21);//使用有參的構造方法
Private sexy(){}
Private sexy(int age){}
}
若枚舉類有抽象方法,則可以通過在元素列表中加入抽象方法的實現代碼的方式,將每個元素都當作這個枚舉類的子類建立的對象.
enum person{
FAMALE{
Public void getMarried(){System.out.println(“getMarriedwith male”);}
},
MALE{
Public void getMarried(){System.out.println(“getMarriedwith famale”);}
};//元素由person類的子類建立,並實現了getMarried方法
Public abstract getMarried();
}