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

 
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值