開心生活站

位置:首頁 > IT科技 > 

enum,java

IT科技1.7W

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

enum java是什麼,讓我們來了解一下?

enum是java的一個語法糖,實際編譯後的文件仍然是一個java類,enum編譯後就是繼承了Enum抽象類的java類,枚舉常量值就是定義的public static final的類對象變量。

那麼我們今天就撥開語法糖的外衣,看一看原始的java類應該是什麼樣的。

首先寫一個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;}}}

輸出結果如下:

REDtruetruered

這就是enum的基本行為。

enum java

到此介紹了enum的用法,但對於沒有使用習慣的小夥伴來講,還是覺得enum很陌生,enum與普通的java類是什麼關係呢?

其實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;}@Overridepublic String toString() {return name;}}

這也僅僅是採用了字符串的方式進行模仿,稍作修改main方法即可實現enum的功能。

標籤:java enum