欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解java枚举用法及实例

程序员文章站 2024-03-02 09:06:43
一、枚举类型作为常量 package myenum; /** * @author zzl * 简单的枚举作为常量 */ public e...

一、枚举类型作为常量

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

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