enum java

<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的功能。