java源碼學習3-Enum

枚舉類型是特殊的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。


發佈了70 篇原創文章 · 獲贊 18 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章