java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java枚举

详解java枚举用法及实例

作者:一休哥

这篇文章主要介绍了Java枚举详解及使用实例,本文直接给出实例代码,需要的朋友可以参考下

一、枚举类型作为常量

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 
*/ 

其实在更近一步的话我们可以输出每个枚举实例的具体位置

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结合使用

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中添加抽象方法)

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">//输出 
/** 
绿灯行! 
红灯停! 
黄灯亮了等一等! 
*/ 

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

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">//输出 
/** 
绿色 
红色 
黄色 
*/ 

希望本文可以帮到有需要的朋友

您可能感兴趣的文章:
阅读全文