每天学会一点点(枚举enum)
枚举的特点:
- enum和class、interface的地位一样
- 使用enum定义的枚举类默认继承了java.lang.Enum,而不是继承Object类。枚举类可以实现一个或多个接口。
- 枚举类的所有实例都必须放在第一行展示,不需使用new 关键字,不需显式调用构造器。自动添加public static final修饰。
- 使用enum定义、非抽象的枚举类默认使用final修饰,不可以被继承。
- 枚举类的构造器只能是私有的。
枚举一代码示例:
public enum enumColor { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); // 成员变量 private String name; private int index; // 构造方法 private enumColor(String name, int index) { this.name = name; this.index = index; } public static String getName(int index){ for (enumColor c : enumColor.values()) { if (c.getIndex() == index) { return c.name; } } return null; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } }
测试结果:
public class Test { public static void main(String[] args) { String name = enumColor.getName(1); System.out.println(name);//红色 } }
枚举二代码示例:
public enum enumSSS { /** * 开始 */ BEGIN("开始","开始1",1), /** * 进行 */ MONEY_ING("进行","进行2",2), /** * 结束 */ MONEY_END("结束","结束3",3); private String name; private String title; private int code; //title和name与"开始","开始1"一一对应;如果title和name互换,则getName和getTitle获得的值互换。 enumSSS(String title, String name, int code) { this.title = title; this.name = name; this.code = code; } public static String getName(int code) { for (enumSSS status : enumSSS.values()) { if (status.getCode() == code) { return status.name; } } return null; } public static String getTitle(int code) { for (enumSSS status : enumSSS.values()) { if (status.getCode() == code) { return status.title; } } return null; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } }
测试结果:
public class Test { public static void main(String[] args) { String name = enumSSS.getName(1); System.out.println(name);//开始1 String title = enumSSS.getTitle(1); System.out.println(title);//开始 } }
程序员的眼里,不止有代码和bug,还有诗与远方和妹子!!!