java枚举

上一段时间工作的时候用到了枚举,下面根据例子总结一下。

package com.yiliaosoft.health.heartElect.front.webservice.impl.delegate;

public class TestEunm {
	public static void main(String[] args) {
		System.out.println(Colour.RED.name());//枚举的名字
		System.out.println(Colour.RED.ordinal());//枚举的排序
		System.out.println(Colour.valueOf("YELLOW"));//接收一个字符串返回一个枚举
		System.out.println(Colour.getColourMessage(Colour.RED));//枚举的静态方法
		System.out.println(Colour.RED.getMessage());//元素内部的实现方法
	}
}

/**
 * 枚举里面的每个元素都是一个特殊的类
 * 每个元素都有自己的构造方法,元素的构造方法限制于枚举类本身所提供的构造方法
 * 枚举元素就对于枚举而言就是个内部类
 * @author Administrator
 *
 */
enum Colour{
	RED(1) {//调用有参的构造方法
		@Override
		public String getMessage() {
			return "红灯停";
		}
	},GREEN {//调用无参的构造方法
		@Override
		public String getMessage() {
			return "绿灯行";
		}
	},YELLOW {
		@Override
		public String getMessage() {
			return "黄灯亮了等一等";
		}
	};
	private int i;
	private Colour(){
		System.out.println("枚举无参构造方法启动!");
	};
	private Colour(int i){
		System.out.println("枚举有参构造方法启动!");
		this.i=i;
		System.out.println("###########"+i);
	}
	
	//传入枚举获取枚举的信息
	public static String getColourMessage(Colour colour){
		String str="";
		switch (colour) {
		case RED:
			str="红灯";
			break;
			
		case GREEN:
			str="绿灯";
			break;
			
		case YELLOW:
			str="黄灯";
			break;
			
		default:
			str="未知灯";
			break;
		}
		return str;
	}
	
	//抽象方法,枚举元素内部去实现
	public abstract String getMessage();
}

 可以根据每个枚举元素来进行不同的操作,用枚举还可以实现一个单例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值