Enum

/*
 *enum:枚举,可以限定本类的对象。此处罗列了一些基本操作。
 */

package classfile;

public class EnumDemo
{
	public static void main(String[] args)
	{
		method_base();
		method_extension();
	}
	
	//枚举的基本方法
	public static void method_base()
	{
		WeekDay weekDay = WeekDay.WEDNESDAY;

		System.out.println("enum的基本方法toString:"+weekDay.toString());
		System.out.println("enum的基本方法name:"+weekDay.name());
		System.out.println("enum的基本方法ordinal(顺序):"+weekDay.ordinal());
		System.out.println("enum的静态方法valueOf:"+WeekDay.valueOf("THURSDAY"));
		System.out.println("enum的静态方法values:"+WeekDay.values().length);
	}

	public static void method_extension()
	{
		//枚举可以通过构造方法传值
		System.out.println("enum可以通过构造方法传值:"+WeekDay.SUNDAY.day);

		//调用枚举的自定义的方法
		System.out.println("调用枚举的自定义的方法:"+TrafficLamp.RED.nextLamp());
	}

	//内部枚举
	public enum WeekDay
	{
		//枚举的元素列表必须放在最前面
		SUNDAY(7),MONDAY(1),TUESDAY(2),WEDNESDAY(3),THURSDAY(4),FRIDAY(5),SATURDAY(6);
		
		private int day;

		//枚举的构造方法必须是私有的
		private WeekDay(){}
		private WeekDay(int day)
		{
			this.day = day;
		}
	}

	//带抽象方法的枚举
	public enum TrafficLamp
	{
		RED(30){
			public TrafficLamp nextLamp()
			{
				return GREEN;
			}
		},
		GREEN(25){
			public TrafficLamp nextLamp()
			{
				return YELLOW;
			}		
		},
		YELLOW(5){
			public TrafficLamp nextLamp()
			{
				return RED;
			}		
		};
		
		private int time;

		private TrafficLamp(int time)
		{
			this.time = time;
		}

		public abstract TrafficLamp nextLamp();
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值