zoukankan      html  css  js  c++  java
  • 枚举的七种常见使用方法

    枚举的使用的方法有很多,下面举出常用的七种方法:

    用法一:常量

      在JDK1.5之前,我们定义常量都是:publicstaticfianl....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

      Java代码

    public enum Color {
    
      RED, GREEN, BLANK, YELLOW
    
      }
    用法二:switch

      JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。

      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;
    
          }
    
        }
    
      }
    用法三:向枚举中添加新方法

      如果打算自定义自己的方法,那么必须在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;
    
      }
    
      // get set 方法
    
      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;
    
      }
    
      }
    用法四:覆盖枚举的方法

      下面给出一个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;
    
      }
    
      }
    用法五:实现接口

      所有的枚举都继承自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);
    
      }
    
      }
    用法六:使用接口组织枚举

      Java代码

    public interface Food {
    
      enum Coffee implements Food{
    
      BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO
    
      }
    
      enum Dessert implements Food{
    
      FRUIT, CAKE, GELATO
    
      }
    
      }
    用法七:关于枚举集合的使用

      java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。

    原文:https://jingyan.baidu.com/article/e4d08ffdcf664d0fd2f60dbf.html

  • 相关阅读:
    jquery的选择器
    css单行文本与多行溢出文本的省略号问题
    div仿textarea使高度自适应
    css3制作炫酷导航栏效果
    变态的iis10
    Session丢失——解决方案
    sqlserver安装遇到的问题——1
    Win SERVER 2008 许可证激活失败,系统重启问题
    sqlserver2008 数据库
    VS2010 不显示 最近使用的项目 解决办法
  • 原文地址:https://www.cnblogs.com/kuoAT/p/6809356.html
Copyright © 2011-2022 走看看