用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

JDK1.5后出现的枚举

2013-07-22 作者: 乐果404举报

[java]代码库

枚举的作用:通过定义类来限制一定范围的值。

1. 简单的枚举

在JDK1.5之前可以通过以下代码来完成。

class Grade {
	private Grade(){}	//必须把构造函数设为私有的
	
	//创建static final的本类对象,用于限定范围
	public static final Grade A = new Grade();
	public static final Grade B = new Grade();
	public static final Grade C = new Grade();
	public static final Grade D = new Grade();
	public static final Grade E = new Grade();
	
}

在JDK1.5之后,通过枚举来实现。枚举的关键字是enum。以上代码可用枚举实现如下:

enum Grade {
	A,B,C,D,E;
}

大大简化了代码的书写。

2. 带有参数的构造函数的枚举,用于封装更多的信息。

//Grade分级,A(100~90)、B(89~80)、C(79~70)、D(69~60)、E(59~0)
enum Grade {
	A("100~90"),B("89~80"),C("79~70"),D("69~60"),E("59~0");
	
	private String value;	// 定义私有变量value
	// 定义有参的构造函数,可以封装更多的信息
	private Grade(String value) {
		this.value = value;
	}
	// 定义公共方法,用于获取value
	public String getValue() {
		return this.value;
	}
}

3. 带抽象的枚举

enum Grade {
	// 初始化对象时要覆写抽象方法
	A("100~90"){
		public String localValue() {
			return "优";
		}
	},
	B("89~80"){
		public String localValue() {
			return "良";
		}
	},
	C("79~70"){
		public String localValue() {
			return "一般";
		}
	},
	D("69~60"){
		public String localValue() {
			return "差";
		}
	},
	E("59~0"){
		public String localValue() {
			return "不及格";
		}
	};
	
	private String value;	// 定义私有变量value
	// 定义有参的构造函数,可以封装更多的信息
	private Grade(String value) {
		this.value = value;
	}
	// 定义公共方法,用于获取value
	public String getValue() {
		return this.value;
	}
	// 定义抽象方法
	public abstract String localValue();
}

注意:枚举中定义的A,B,C,D,E均是对象,不是属性。


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...