枚舉類型是特殊的class
(1)Enum 最常用的用法是作爲常量,
通常我們在代碼裏面定義常量的時候 用的是 public static final,現在有了 枚舉類, 可以通過枚舉類來定義常量
(2)在使用switch 語句進行分支判斷,使用枚舉類能夠使代碼具有更好的可讀性
(3)枚舉類可以額外定義自己的方法、覆蓋父類Enum的方法,並且支持接口實現
代碼如下:
public class EnumTest {
public static void main(String[] args) {
System.out.println("Test1:"+MyBook1.SUANFA);
System.out.println("Test2:"+MyColor2.RGB_RED);
System.out.println("Test3:"+MyBook3.BOOK1);
System.out.println("Test4:"+MyBook3.SHUJUJIEGOU);
}
}
enum MyBook1{
SUANFA,SHUJUJIGOU,DAOLUN
}
enum MyColor2{
RGB_RED(255,0,0),RGB_GREEN(0,255,0),RGB_BLUE(0,0,255);
private MyColor2(int r,int g,int b){
this.r=r;
this.g=g;
this.b=b;
System.out.println(this);
}
public String toString(){
return this.r+","+this.g+","+this.b;
}
private int r,g,b;
}
enum MyBook3 {
SUANFA,SHUJUJIEGOU,DAOLUN,
BOOK1("book1"),BOOK2("book2"),BOOK3("book3");
private MyBook3(String name){
bookName=name;
System.out.println(this);
}
private MyBook3(){
System.out.println(this);
}
public String toString(){
return bookName !=null?bookName:super.toString();
}
private String bookName;
}
運行結果如下:
Test1:SUANFA
255,0,0
0,255,0
0,0,255
Test2:255,0,0
SUANFA
SHUJUJIEGOU
DAOLUN
book1
book2
book3
Test3:book1
Test4:SHUJUJIEGOU
通過結果我們可以看見,Enum 能夠起到一個常量的作用,另外我們在使用Enum 數據的時候,會首先初始化枚舉類裏的所有枚舉數據,並且支持帶參和無參的私有構造函數。
所有的枚舉類都繼承自Enum。