W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
我們可以為每個枚舉常量添加一個不同的體。身體可以有字段和方法。
枚舉常量的主體放在其名稱后面的大括號中。
如果枚舉常量接受參數,其主體將遵循其參數列表。將主體與枚舉常量相關聯的語法如下:
<access-modifier> enum <enum-type-name> { ENUM_VALUE1 { // Body for ENUM_VALUE1 goes here }, ENUM_VALUE2 { // Body for ENUM_VALUE2 goes here }, ENUM_VALUE3(arguments-list) { // Body of ENUM_VALUE3 goes here }; // Other code goes here }
下面的代碼用body創(chuàng)建了Level枚舉類型。
enum Level { LOW("Low Level", 30) { public double getDistance() { return 30.0; } }, MEDIUM("Medium Level", 15) { public double getDistance() { return 15.0; } }, HIGH("High Level", 7) { public double getDistance() { return 7.0; } }, URGENT("Urgent Level", 1) { public double getDistance() { return 1.0; } }; private int levelValue; private String description; private Level(String description, int levelValue) { this.description = description; this.levelValue = levelValue; } public int getLevelValue() { return levelValue; } @Override public String toString() { return this.description; } public abstract double getDistance(); } public class Main { public static void main(String[] args) { for (Level s : Level.values()) { String name = s.name(); String desc = s.toString(); int ordinal = s.ordinal(); int levelValue = s.getLevelValue(); double distance = s.getDistance(); System.out.println("name=" + name + ", description=" + desc + ", ordinal=" + ordinal + ", levelValue=" + levelValue + ", distance=" + distance); } } }
級別枚舉有一個抽象方法getDistance()。
每個實例常量都有一個實體為getDistance()方法提供實現。
它重寫了Enum類中的toString()方法。
上面的代碼生成以下結果。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: