常见枚举用法
Posted yinghuoshouxin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见枚举用法相关的知识,希望对你有一定的参考价值。
1.常量
把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
- public enum Color {
- RED, GREEN, BLANK, YELLOW
- }
2.switch
使用枚举,能让我们的代码可读性更强。
- enum Signal {
- GREEN, YELLOW, RED
- }
- public class TrafficLight {
- Signal color = Signal.RED;
- public void change() {
- switch (color) {
- case RED:
- color = Signal.GREEN;
- break;
- case YELLOW:
- color = Signal.RED;
- break;
- case GREEN:
- color = Signal.YELLOW;
- break;
- }
- }
- }
3.向枚举中添加新方法
如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。
- public enum Color {
- RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
- private String name;
- private int index;
- private Color(String name, int index) {
- this.name = name;
- this.index = index;
- }
- public static String getName(int index) {
- for (Color c : Color.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;
- }
- }
4.覆盖枚举的方法
下面给出一个toString()方法覆盖的例子。
- public enum Color {
- RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
- private String name;
- private int index;
- private Color(String name, int index) {
- this.name = name;
- this.index = index;
- }
- @Override
- public String toString() {
- return this.index+"_"+this.name;
- }
- }
5.实现接口
所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。
- public interface Behaviour {
- void print();
- String getInfo();
- }
- public enum Color implements Behaviour{
- RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
- private String name;
- private int index;
- private Color(String name, int index) {
- this.name = name;
- this.index = index;
- }
- @Override
- public String getInfo() {
- return this.name;
- }
- @Override
- public void print() {
- System.out.println(this.index+":"+this.name);
- }
- }
以上是关于常见枚举用法的主要内容,如果未能解决你的问题,请参考以下文章