黑马程序员_基础加强_枚举Enum

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

  Enum枚举:

一些程序在运行时,它需要的数据不能是任意的而必须是一定范围内的值,JDK5以前采用自定义类来解决,JDK5以后可以直接采用枚举解决,新增的enum关键字用于定义一个枚举类

特点

1、  Enum是所有枚举的公共基本类,继承自Object,具备Object中的方法。

2、  直接定义枚举值,枚举值相当于用默认构造函数创建的公有的静态常量本类对象。

3、  一个枚举也可以有构造函数、字段和方法,构造方法必须私有,定义有参构造方法后需要在枚举后添加参数调用。

4、  实现了Comparable接口,具备比较性。

枚举值:枚举中定义的枚举值相当于用默认构造函数创建的公有的静态常量本类实例化对象。

枚举类的枚举值只能在在前面,以逗号间隔,以分号结束。

功能:

name()返回此枚举常量的名称,在其枚举声明中对其进行声明。

ordinal()返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。

valueOf(String name)静态方法,返回带指定名称的枚举常量,如果不包含指定名称的枚举值,抛出IllegalArgumentException异常。

valueOf()返回所有枚举常量的数组。

枚举类也可以实现接口、或继承抽象类,这时枚举中就有了抽象方法,利用带有抽象方法的枚举创建方式使用。

 JDK5中扩展了switch语句,它除了接收int外,还可以接收一个枚举类型

若枚举类只有一个枚举值,则可以当做单例设计模式使用。


最复杂的枚举事例:

	public enum TrafficLamp{  //先定义三个元素,在元素后面填上大括号表示三个元素使用枚举的子类来完成的。
		RED(30){
			public  TrafficLamp nextLamp(){		//子类必须完成父类的抽象方法,注:这里的方法不能再抽象了。将abstract去掉
				return GREEN;
			}
		},
		GREEN(45){
			public  TrafficLamp nextLamp(){
				return YELLOW;
			}
		},
		YELLOW(5){
			public  TrafficLamp nextLamp(){
				return RED;
			}
		};
		
		public abstract TrafficLamp nextLamp();//这个方法的返回值还是TrafficLamp
		
		//灯还需要有时间,所以需要成员变量
		private int time;
		private TrafficLamp(int time){this.time = time;}
	}

}



---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值