java枚举详解

    xiaoxiao2021-03-31  37

    一、枚举类型作为常量

    [java]  view plain  copy   package myenum;   /**   * @author zzl   * 简单的枚举作为常量   */   public enum Color {       GREEN,RED,YELLOW;       public static void main(String[] args) {           for (Color c : values()) {               System.out.println("color:"+c);           }       }   }   //输出   /**  color:GREEN  color:RED  color:YELLOW  */   其实在更近一步的话我们可以输出每个枚举实例的具体位置

    [java]  view plain  copy   package myenum;   /**   * @author zzl   * 简单的枚举作为常量   */   public enum Color {       GREEN,RED,YELLOW;       public static void main(String[] args) {           for (Color c : values()) {               System.out.println(c + " position "+c.ordinal());           }       }   }   //输出结果   /**  GREEN position 0  RED position 1  YELLOW position 2  */    二、与swith结合使用

    [java]  view plain  copy   public enum Color {       GREEN,RED,YELLOW;       public static void main(String[] args) {           Color c = RED;           switch (c) {           case RED:               System.out.println("红色");               break;           case GREEN:               System.out.println("绿色");               break;           case YELLOW:               System.out.println("黄色");               break;           default:               break;           }       }   }   //输出   /**  红色  */   从上面的例子可以看出枚举的多态性,其实可以讲Color作为枚举的超类,其中的实例在运行时表现出多态。(如上面的输出结果为红色,下面的例子来验证这一特性。)

    三、多态性(在Color中添加抽象方法)

    [java]  view plain  copy   public enum Color {       GREEN{           void description(){               System.out.println("绿灯行!");           }       },RED{           void description(){               System.out.println("红灯停!");           }       },YELLOW{           void description(){               System.out.println("黄灯亮了等一等!");           }       };//如果枚举中有方法则左后一个实例以“;”结束       abstract void description();       public static void main(String[] args) {           for (Color c : values()) {               c.description();           }       }      }   <pre name="code" class="java">//输出   /**  绿灯行!  红灯停!  黄灯亮了等一等!  */  

    四、利用构造器为实例添加描述

    [java]  view plain  copy   public enum ColoStructure {       GREEN("绿色"),RED("红色"),YELLOW("黄色");//如果枚举中有方法则左后一个实例以“;”结束       public String description;       private ColoStructure(String des){           this.description = des;       }       public static void main(String[] args) {           for (ColoStructure c : values()) {               System.out.println(c.description);           }       }   }   <pre name="code" class="java"><pre name="code" class="java">//输出   /**  绿色  红色  黄色  */  

    转载请注明原文地址: https://ju.6miu.com/read-665478.html

    最新回复(0)