enum java是什么,讓我們來了解一下?
enum是java的一個語法糖,實際編譯后的文件仍然是一個java類,enum編譯后就是繼承了Enum抽象類的java類,枚舉常量值就是定義的public static final的類對象變量。
那么我們今天就撥開語法糖的外衣,看一看原始的java類應(yīng)該是什么樣的。
首先寫一個enum類:
enum?Color?{ RED,YELLOW,BLUE }
這樣簡單的枚舉類它的基本用法就是:打印,判斷相等,和switch:
package?aaa; ? public?class?User2?{ ? public?static?void?main(String[]?args)?{ System.out.println(Color.RED); Color?red?=?Color.RED; System.out.println(red==Color.RED); System.out.println(red.equals(Color.RED)); switch(red)?{ case?RED: System.out.println("red"); break; case?YELLOW: System.out.println("yellow"); break; case?BLUE: System.out.println("blue"); break; default: break; } } }
輸出結(jié)果如下:
RED true true red
這就是enum的基本行為。
到此介紹了enum的用法,但對于沒有使用習(xí)慣的小伙伴來講,還是覺得enum很陌生,enum與普通的java類是什么關(guān)系呢?
其實enum編譯后就是繼承了Enum抽象類的java類,枚舉常量值就是定義的public static final的類對象變量。由于Enum類在編寫時是無法繼承的,我們就來模仿寫一個enum的語法糖類。
final?class?Color{ public?static?final?Color?RED?=?new?Color("RED"); public?static?final?Color?YELLOW?=?new?Color("YELLOW"); public?static?final?Color?BLUE?=?new?Color("BLUE"); private?String?name; public?Color(String?name)?{ super(); this.name?=?name; } ? public?String?getName()?{ return?name; } ? public?void?setName(String?name)?{ this.name?=?name; } @Override public?String?toString()?{ return?name; } }
這也僅僅是采用了字符串的方式進行模仿,稍作修改main方法即可實現(xiàn)enum的功能。
以上就是小編今天的分享了,希望可以幫助到大家。