java枚举


         1、枚举概述

               在J2SE5.0中新增加了枚举这个类型,枚举是一种特殊的类,其中每个元素都是该类的一个实例对象。

          2.用普通类如何实现枚举的功能,就是规定只能返回几个实例对象。

    

//用普通类业实现枚举功能
public class Weekday {

	//将构造方法私有化
	private Weekday(){}
	//定义几个实例变量
	public static Weekday MON=new Weekday();
	public static Weekday TUS=new Weekday();
	public static Weekday WES=new Weekday();
	public static Weekday THI=new Weekday();
	public static Weekday FRI=new Weekday();
	public static Weekday SAT=new Weekday();
	public static Weekday SUN=new Weekday();
	public void method(){
		// do something
		
	}
 }


3、枚举的定义,使用enum关键字进行定义

     public enum Weekday

   {

     SUN,MON,TUE,WED,THI,FRI,SAT;//后面有其它成员是必须带分号,如果没有,可以不带

      }

     4、枚举的实质还是一个类,所以枚举有构造方法,只是构造方法必须是private的

     private Weekday(){}//构造方法必须为私有的,枚举元素的默认构造方法无参构造方法

     private Weeday(int index){} //如果枚举的元素要调用有参构造方法时,则需要用这种方式进行传值 SUN(value)

    5,枚举还可以有变量、常量、普通方法和抽象方法。下面是定义的一个交通灯枚举类,可以很好说明枚举的组成部分

 
  public enum Traffic {
	RED(30){//定义的枚举元素

		@Override
		public Traffic next() {//每个元素必须实现枚举类的抽象方法
			// TODO Auto-generated method stub
			return GREEN;
		}
		
	},
	GREEN(20)
	{
		public Traffic next() {
			// TODO Auto-generated method stub
			return YELLOW;
		}
		
		
	},
	YELLOW(3)
	{
		public Traffic next() {
			// TODO Auto-generated method stub
			return RED;
		}
		public String toString()
		{
			return "黄灯亮"+this.YELLOW.time;
		}
	};
	private int time;//变量
	private Traffic(){}//枚举的无参构造方法
	private Traffic(int time){this.time=time;}//表示这个灯亮的时间
	public abstract Traffic next();//定义一个抽象方法

}
 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值