一、枚舉類就是class而且是一個不可被繼承的final class,其枚舉值都是public static final的。 java
二、既然枚舉類是class其就會有構造、方法、數據域。可是枚舉類的構造器有很大不一樣:首先,構造器只是在構造枚舉值時使用;其次,構造器是private的,不容許爲public(這樣能夠保證外部代碼沒法新構造枚舉類的實例。這也是徹底符合情理的,由於咱們知道枚舉值是public static final的常量而已。 但枚舉類的方法和數據域能夠容許外部訪問)。 數組
三、全部枚舉類都繼承了Enum的方法,下面咱們詳細介紹這些方法。
(1) ordinal()方法: 返回枚舉值在枚舉類種的順序。這個順序根據枚舉值聲明的順序而定。
(2) compareTo()方法: Enum實現了java.lang.Comparable接口,所以能夠比較象與指定對象的順序。Enum中的compareTo返回的是兩個枚舉值的順序之差。固然,前提是兩個枚舉值必須屬於同一個枚舉類,不然會拋出ClassCastException()異常。
(3) values()方法: 靜態方法,返回一個包含所有枚舉值的數組。
(4) toString()方法: 返回枚舉常量的名稱。
(5) valueOf()方法: 這個方法和toString方法是相對應的,返回帶指定名稱的指定枚舉類型的枚舉常量。
(6) equals()方法: 比較兩個枚舉類對象的引用。 spa
四、枚舉類能夠在switch語句中使用。 對象