枚舉類
阿新 • • 發佈:2017-05-31
默認 實現接口 兩個 .class 通過 case clas 抽象 lan
用enum關鍵字定義枚舉類,地位與class interface相同,有成員變量,方法,構造器,可以實現多個接口
一個java源文件只能有一個public枚舉類,且必須名字相同
與普通類區別:
可以實現多個接口,但默認繼承java.lang.Enum類,而不是Object類,所以不能顯式的繼承其他父類。java.lang.Enum實現了java.lang.Serializable和java.lang.Comparable兩個接口
使用enum定義,非抽象的枚舉類會默認使用final修飾,所以不能派生子類
枚舉類的構造器只能用private修飾,且默認指定private
枚舉類的所有實例必須在枚舉類的第一行顯式的列出,否則這個枚舉類不能產生實例,這些實例系統自動添加public static final修飾
枚舉類默認提供一個values()方法,用來遍歷所有枚舉值
public enum Season{
SPRING,SUMMER,FALL,WINTER;//四個實例,switch case可以直接使用
public String s;
}
使用枚舉值:for(Season s : Season.values()){....}
使用成員:通過Enum的valueOf()方法獲取指定枚舉值創建實例:Season sea = Enum.valueOf(Season.class,"SUMMER")
然後通過實例調用成員:sea.s
不能通過new創建枚舉類對象
實現接口:實例後面跟{...}來實現抽象方法
枚舉類