JavaJava学习笔记-枚举类型

枚举类型

枚举类型就是先期定义的一类常量集合,如七天的日子、水果的类型等。要求注意的几点内容如下:

  • 定义枚举类时,Java默许继承java.lang.Enum,所以定义的枚举类无法继承其余系列;
  • 枚举类中得以涵盖成员变量、成员函数,但枚举常量的定义再有所field和method从前,并以“;”甘休;
  • 枚举类的构造函数必须是package-private或private;
  • 枚举常量创造的时候都是将值传递到构造函数举行打造的;
  • 出于枚举类继承Enum类,默许具有name()(得到枚举常量名)、values()(获得枚举常量数组)、valueOf(String
    arg)(将arg转为枚举常量)、ordinal()(声明顺序,由0初步)、getClass()、getDeclaringClass()

实例:

 1 package enumtest;
 2 
 3 public enum Color {
 4     GREEN(2,"绿色"),
 5     RED(3, "红色"),
 6     BLUE(5, "蓝色");
 7     
 8     private int num;
 9     private String desc;
10     
11     Color(int num, String desc) {
12         this.num = num;
13         this.desc = desc;
14     }
15     
16     public int getNum() {
17         return this.num;
18     }
19     
20     public String getDesc() {
21         return this.desc;
22     }
23     
24     public static void main(String[] args) {
25         for (Color color : Color.values()) {
26             System.out.println(color+"---"+color.num+"---"+color.desc);
27         }
28         for (Color color : Color.values()) {
29             System.out.println(color.name());
30         }
31         System.out.println(Color.valueOf("GREEN").desc);
32         System.out.println(Color.GREEN.ordinal());
33         System.out.println(Color.GREEN.getClass());
34         System.out.println(Color.GREEN.getDeclaringClass());
35     }
36 }

 输出结果:

 1 GREEN---2---绿色
 2 RED---3---红色
 3 BLUE---5---蓝色
 4 GREEN
 5 RED
 6 BLUE
 7 绿色
 8 0
 9 class enumtest.Color
10 class enumtest.Color

 其余,在汇集中还设有java.util.EnumSet<E extends
Enum<E>>和java.util.EnumMap<K
extends Enum<K>,V>,其中EnumSet可存储不另行的枚举常量,EnumMap的KEY为某枚举类型,它们的蕴藏类型由泛型评释决定。

参考:

https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

相关文章