常见枚举用法

it2022-05-05  141

1.常量

把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 

Java代码  public enum Color {    RED, GREEN, BLANK, YELLOW  }  

 

2.switch

使用枚举,能让我们的代码可读性更强。 

Java代码  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 实例。 

Java代码  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()方法覆盖的例子。 

Java代码  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 不支持多继承,所以枚举对象不能再继承其他类。 

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);      }  }  

 

 

 

转载于:https://www.cnblogs.com/yinghuoshouxin/p/9193356.html


最新回复(0)