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; } } }
输出结果如下:
RED true true red
这就是enum的基本行为。
到此介绍了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; } @Override public String toString() { return name; } }
这也仅仅是采用了字符串的方式进行模仿,稍作修改main方法即可实现enum的功能。
以上就是小编今天的分享了,希望可以帮助到大家。