真的了解 Java Enum吗?
Java 中的每一个枚举都继承自 java.lang.Enum 类。当定义一个枚举类型时,每一个枚举类型成员都可以看作是 Enum 类的实例,这些枚举成员默认都被 final、public, static 修饰,当使用枚举类型成员时,直接使用枚举名称调用成员即可。
public enum 构造函数Demo {
ZERO,ONE,TWO,THREE;
构造函数Demo(){
System.out.println("构造函数执行");
}
}
package com.wf.code.枚举类;
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
//eg1();
eg2();
}
/**
* 这个函数输出如下:
* 枚举类构造函数执行
* 枚举类构造函数执行
* 枚举类构造函数执行
* ONE
*/
private static void eg1(){
System.out.println(构造函数Demo.ONE);
}
/**
* 此函数输出如下:
* 1 0 2 3
*/
private static void eg2(){
System.out.println(构造函数Demo.ONE.ordinal());
System.out.println(构造函数Demo.ZERO.ordinal());
System.out.println(构造函数Demo.TWO.ordinal());
System.out.println(构造函数Demo.THREE.ordinal());
Arrays.stream(构造函数Demo.values()).forEach(i->{
System.out.print(i+"\t");
});
}
}
-
构造方法
在调用枚举对象的时候,会默认调用他的每个枚举类的构造方法 -
Java底层是啥样的
在编译之后转化为一个继承了java.lang.Enum的类,而我们定义的每个枚举值都会在类的初始化阶段被实例化为我们所定义的枚举类的一个对象。
自己总结还是不够:贴个链接以后可以站在巨人肩膀上学习。感谢作者
https://blog.csdn.net/javazejian/article/details/71333103