enum java

作者:原创时间:2022-03-21
文档

enum java是什么,让我们来了解一下?

enum是java的一个语法糖,实际编译后的文件仍然是一个java类,enum编译后就是继承了Enum抽象类的java类,枚举常量值就是定义的public static final的类对象变量。

那么我们今天就拨开语法糖的外衣,看一看原始的java类应该是什么样的。

首先写一个enum类:

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

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
excel读取java extend java extends java false是java关键字吗 爱奇艺黄金会员和星钻会员的区别 field java foreach java for循环java gateway java gdal java gdb java geohash java geojson java glue java golang调用java grep java groupby java guava java hbase java hibernate java 小程序和app的区别 awesome java arrays java eclipse创建java dozer java double java 微信怎么群发消息给多人 django java continue java 被删的微信聊天记录怎么找回来 compareto java cmake java class转java character java callable java qq实名认证怎么解除 calendar java cache java c#调用java接口 c#调用java