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的功能。
以上就是小编今天的分享了,希望可以帮助到大家。