JAVA中的枚舉類型


在JAVA中,枚舉類型的使用需要借助“enum”關鍵字,下面討論有關枚舉類型的使用及注意事項。

先看一段代碼:

import java.util.*;

public class Spiciness {
public enum Spic{
NOT,MILD,MEDIUM,HOT,FLAMING
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Spic howHot = Spic.MEDIUM;
System.out.println(howHot);
}

}
此程序輸出結果為:


上述程序創建了一個名為Spic的枚舉類型,內含五個具名值,按照命名規則,常量用大寫字母表示。當創建enum類型時,編譯器自動創建toString()方法,以便方便顯示某個enum實例的名字,另外還會自動創建ordinal()方法,用來表示某個enum常量的聲明順序,以及static values()方法,用來按照enum常量的聲明順序,產生由這些常量構成的數組,以下代碼說明了此點:

import java.util.*;

public class Spiciness {
public enum Spic{
NOT,MILD,MEDIUM,HOT,FLAMING
}
public static void main(String[] args) {
// TODO Auto-generated method stub
for(Spic s : Spic.values()){
System.out.println(s+".ordinal " + s.ordinal());
}
}

}
此程序運行結果為:


“enum”關鍵字為enum生成對應的類時,產生了某些編譯器行為,在很大程度上,可以將enum當做其它任何類來處理,其具有自己的方法,可以在switch中應用,如下代碼:

import java.util.*;

public class Spiciness {
public enum Spic{
NOT,MILD,MEDIUM,HOT,FLAMING
}
Spic degree;
public Spiciness(Spic degree){
this.degree = degree;
}
public void describe(){
System.out.print("This burrito is ");
switch(degree){
case NOT: System.out.println("not spicy at all.");
break;
case MILD:
case MEDIUM: System.out.println("a little hot.");
break;
case HOT:
case FLAMING:
default: System.out.println("maybe too hot.");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Spiciness plain = new Spiciness(Spic.NOT),
greenChile = new Spiciness(Spic.MEDIUM),
jalapeno = new Spiciness(Spic.HOT);
plain.describe();
greenChile.describe();
jalapeno.describe();
}

}
此程序運行結果為:


由於switch要在有限的可能值集合中選取,所以與neum配合使用效果會很好,大體上,可以將neum用作另一種創建數據類型的方式,直接將所得到的類型拿來使用。












注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com