W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
枚舉類型創(chuàng)建常量的有序列表作為類型。它以特定順序指定常量。
在枚舉類型中定義的常量是該枚舉類型的實(shí)例。
使用關(guān)鍵字enum使用以下語法定義枚舉類型:
<access-modifier> enum <enum-type-name> { // List of comma separated names of enum constants }
<access-modifiers>與類的訪問修飾符相同:public,private,protected或package-level。
<enum-type-name>是有效的Java標(biāo)識符。
枚舉類型的主體放在大括號中,名稱后面。主體可以有逗號分隔的常量和其他元素的列表,例如實(shí)例變量,方法等。
大多數(shù)時(shí)候,枚舉體只包括常量。
下面的代碼聲明了一個(gè)名為Gender的枚舉類型,它聲明了兩個(gè)常量:MALE和FEMALE:
public enum Gender { MALE, FEMALE; // The semi-colon is optional }
將枚舉常量命名為大寫是一種慣例。
以下代碼聲明了一個(gè)名為Level的公共枚舉類型,它具有四個(gè)枚舉常量:LOW,MEDIUM,HIGH和URGENT。
public enum Level { LOW, MEDIUM, HIGH, URGENT; }
可以從應(yīng)用程序中的任何位置訪問公共枚舉類型。
公共枚舉類型保留在具有枚舉類型名稱的文件中。級別枚舉將保存在名為Level.java的文件中。
我們需要在包中放置枚舉類型,我們可以使用 import
語句導(dǎo)入枚舉類型。
我們可以聲明枚舉類型的變量,就像聲明類類型的變量一樣。
以下代碼聲明Level枚舉類型的errorLevel變量。
Level errorLevel;
您可以為枚舉類型變量分配null,如下所示:
Level defectLevel = null;
您可以在switch語句中使用枚舉類型。
當(dāng)switch表達(dá)式是枚舉類型時(shí),所有case標(biāo)簽必須是同一枚舉類型的不合格枚舉常量。
enum Direction { East, South, West, North } public class Main { public static void main(String args[]) { Direction dir = Direction.South; switch (dir) { case South: System.out.println("south"); break; case East: System.out.println("East"); break; case West: System.out.println("West"); break; case North: System.out.println("North."); break; } } }
上面的代碼生成以下結(jié)果。
我們可以在類,接口或另一個(gè)枚舉類型中有一個(gè)嵌套的枚舉類型聲明。
嵌套枚舉類型是隱式靜態(tài)的。因?yàn)槊杜e類型總是靜態(tài)的,所以我們不能在方法體內(nèi)聲明一個(gè)局部枚舉類型。
對于嵌套枚舉類型,我們可以使用任何訪問修飾符(public,private,protected或package)級別。
以下代碼顯示了如何在Person類中聲明名為Gender的嵌套公共枚舉類型。
class Person { public enum Gender { MALE, FEMALE } } public class Main { public static void main(String[] args) { Person.Gender m = Person.Gender.MALE; Person.Gender f = Person.Gender.FEMALE; System.out.println(m); System.out.println(f); } }
Person.Gender枚舉類型可以從應(yīng)用程序中的任何位置訪問,因?yàn)樗驯宦暶鳛閜ublic。
我們也可以通過使用靜態(tài)導(dǎo)入導(dǎo)入枚舉常量來使用枚舉常量的簡單名稱。
import static com.w3cschool.enums.Person.Gender.*;
枚舉類型可以實(shí)現(xiàn)接口。實(shí)現(xiàn)接口的枚舉類型的規(guī)則與實(shí)現(xiàn)接口的類的規(guī)則相同。
下面的代碼演示了如何讓enum類型實(shí)現(xiàn)一個(gè)接口。interface Command { void execute(); } enum Level implements Command { LOW { public void execute() { System.out.println("Low..."); } }, HIGH { public void execute() { System.out.println("HIGH..."); } }; public abstract void execute(); } public class Main { public static void main(String... args) { for (Command cmd : Level.values()) { cmd.execute(); } } }
上面的代碼生成以下結(jié)果。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: