1. 程式人生 > >枚舉類

枚舉類

默認 實現接口 兩個 .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創建枚舉類對象

實現接口:實例後面跟{...}來實現抽象方法

枚舉類