Java列舉類的簡單學習(瞭解)
阿新 • • 發佈:2019-01-08
先看一個簡單的列舉類。
package enumcase;
public enum SeasonEnum {
SPRING,SUMMER,FALL,WINTER;
}
1.enum和class、interface的地位一樣
2.使用enum定義的列舉類預設繼承了java.lang.Enum,而不是繼承Object類。列舉類可以實現一個或多個介面。
3.列舉類的所有例項都必須放在第一行展示,不需使用new 關鍵字,不需顯式呼叫構造器。自動新增public static final修飾。
4.使用enum定義、非抽象的列舉類預設使用final修飾,不可以被繼承。
5.列舉類的構造器只能是私有的。
列舉類內也可以定義屬性和方法,可是是靜態的和非靜態的。
6. 列舉類不能定義在main函式中。
複製程式碼
package enumcase;
public enum SeasonEnum {
SPRING("春天"),SUMMER("夏天"),FALL("秋天"),WINTER("冬天");
private final String name;
private SeasonEnum(String name)
{
this.name = name;
}
public String getName() {
return name;
}
}
複製程式碼
實際上在第一行寫列舉類例項的時候,預設是呼叫了構造器的,所以此處需要傳入引數,因為沒有顯式申明無參構造器,只能呼叫有引數的
構造器。
構造器需定義成私有的,這樣就不能在別處申明此類的物件了。列舉類通常應該設計成不可變類,它的Field不應該被改變,這樣會更安全,
而且程式碼更加簡潔。所以我們將Field用private final修飾。