定義枚舉
枚舉使用關(guān)鍵字enum
定義赏参,枚舉值一般使用大寫字母,值之間用逗號(hào)隔開预皇。例如定義一個(gè)顏色的枚舉奕短。
public enum Color {
YELLOW,RED,GREEN,BLACK
}
枚舉使用
枚舉可以像常量一樣直接使用
Color color = Color.RED;
Enum的常用方法
枚舉是繼承自抽象類Enum的,類Enum中有如下幾個(gè)常用方法
方法名 | 返回類型 | 說明 |
---|---|---|
ordinal() | int | 返回枚舉常量的序數(shù),第一個(gè)為0坐榆,第二個(gè)為1拴魄,以此類推 |
compareTo(E o) | int | 返回該枚舉的序數(shù) - o的序數(shù) |
getDeclaringClass() | Class<?> | 返回該枚舉的Class類型 |
name() | String | 返回該枚舉的名字 |
static valueOf(Class<T> enumType, String name) | static<T extends Enum<T>> T | 返回帶指定名稱的指定枚舉類型的枚舉常量 |
定制枚舉
可以給枚舉定制一些功能,比如可以給上述的顏色枚舉增加一個(gè)顏色屬性(當(dāng)然也可以增加兩個(gè)或多個(gè))
public enum Color {
YELLOW("黃色"),RED("紅色"),GREEN("綠色"),BLACK("黑色");
private String desc;
Color(String desc){
this.desc = desc;
}
}
這種屬性是類似于類的構(gòu)造函數(shù)席镀,其中構(gòu)造函數(shù)Color()必須是private。
和普通類的區(qū)別
大部分類的功能枚舉都可以實(shí)現(xiàn)夏漱,比如定義屬性和方法豪诲,實(shí)現(xiàn)接口,重寫方法等挂绰。但枚舉不能繼承屎篱,因?yàn)榫幾g器自動(dòng)將我們定義的枚舉類繼承自Enum抽象類服赎,而java是單繼承,所以我們不能在使用自定義的枚舉去繼承交播。