ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 枚举是多种实例的集合,用于穷举出可能发生的事情。 > 1. 枚举(enum),是指一个经过排序的、被打包成一个单一实体的项列表。一个枚举的实例可以使用枚举项列表中任意单一项的值。 > 2. 创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式 Class Enum<E extends Enum<E>>,而 E 表示枚举类型的名称。枚举类型的每一个值都将映射到 protected Enum(String name, int ordinal) 构造函数中,在这里,每个值的名称都被转换成一个字符串,并且序数设置表示了此设置被创建的顺序。 例如: ~~~ public enum EnumTest { MON, TUE, WED, THU, FRI, SAT, SUN; } ~~~ 这段代码实际上调用了7次 Enum(String name, int ordinal): ~~~ new Enum<EnumTest>("MON",0); new Enum<EnumTest>("TUE",1); new Enum<EnumTest>("WED",2); ... ... ~~~ 自定义属性 ~~~ package com.aixin.tuna.enumtest; public enum Color1 { //这里调用构造方法,实例了一堆枚举实例 RED("红色", 1,"00000"), GREEN("绿色", 2,"00001"), BLANK("白色", 3,"00002"), YELLO("黄色", 4,"00003"); // 成员变量 private int num; private String colorCode; private String name; // 构造方法,私有保证枚举实例不被随意的修改,导致混乱 private Color1(String name, int num,String colorCode) { this.name = name; this.num = num; this.colorCode = colorCode; } // 普通方法 public static String getName(int num) { for (Color1 c : Color1.values()) { if (c.getNum() == num) { return c.name; } } return null; } // get set 方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public String getColorCode() { return colorCode; } public void setColorCode(String colorCode) { this.colorCode = colorCode; } //覆盖方法 @Override public String toString() { return this.num +"_" + this.name +"_" + this.colorCode; } } ~~~ test ~~~ @Test public void test1() { Color1 blank = Color1.BLANK; System.out.println(blank); System.out.println(blank.getColorCode()); } ~~~ 输出 ~~~ 3_白色_00002 00002 ~~~ 类似于javabean,也有getter和setter,对枚举值进行设置