W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
因為枚舉類型實際上是一個類類型,所以我們可以在枚舉類型體中聲明一切,我們可以在類體中聲明它。
以下代碼使用字段,構造函數和方法定義了一個級別枚舉。
public enum Level { LOW(30), MEDIUM(15), HIGH(7), URGENT(1); // Declare an instance variable private int levelValue; // Declare a private constructor private Level(int levelValue) { this.levelValue = levelValue; } public int getLevelValue() { return levelValue; } }
上面的代碼聲明了一個實例變量 levelValue
,它將為每個枚舉常量存儲一個值。
它還定義了一個私有構造函數,它接受一個int參數。它將其參數的值存儲在實例變量中。
我們可以向枚舉類型添加多個構造函數。
我們不能向枚舉類型添加公共或受保護的構造函數。
級別枚舉聲明一個公共方法getLevelValue()。
枚舉常量聲明已更改為
LOW(30), MEDIUM(15), HIGH(7), URGENT(1);
現在每個枚舉常量名稱后面都跟著括號中的整數值。 LOW(30)是調用int參數類型的構造函數的縮寫。
當創(chuàng)建枚舉常量時,括號中的值將被傳遞給我們添加的構造函數。
LOW調用默認的無參數構造函數,而LOW(30)使用參數調用構造函數。
以下代碼測試Level枚舉類型。它打印常量的名稱,它們的序數和它們的下劃線值。
enum Level { LOW(30), MEDIUM(15), HIGH(7), URGENT(1); // Declare an instance variable private int levelValue; // Declare a private constructor private Level(int levelValue) { this.levelValue = levelValue; } public int getLevelValue() { return levelValue; } } public class Main { public static void main(String[] args) { for (Level s : Level.values()) { String name = s.name(); int ordinal = s.ordinal(); int underLine = s.getLevelValue(); System.out.println("name=" + name + ", ordinal=" + ordinal + ", underLine=" + underLine); } } }
上面的代碼生成以下結果。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: