JAVA入门基础--浅谈枚举Enum类型

Java枚举Enum在实际项目中也使用较为广泛的。最常用的是定义性别,如:

public enum Sex {
	MAN,WOMEN
}

枚举类型是编程中的一个普通用语,可理解为 有限元素的集合。

枚举也是一种特殊的Java类。但也有较为特殊的地方:

(1)构造方法默认是无参的,并且是private的,也可以重写构造函数。

(2)可以在枚举中定义属性、方法。

(3)枚举类型的中成员都是静态、不可以改变的常量(public final static)。

上面的Sex枚举案例中,其默认构造函数是private的,无参的。

private Sex(){}

下面定义一个成绩等级枚举类型实例,分数85-100为EXCELIENT,75-85为GOOD,60-75为PASS,0-60为FAILURE。

定义成绩等级枚举类型Grade:

package com.eyugame.enumdemo;

/**
 * 成绩等级枚举类型
 * 
 * <pre>
 * 分数85-100为EXCELIENT,75-85为GOOD,60-75为PASS,0-60为FAILURE。
 * </pre>
 * 
 * @author gerdan
 * 
 */
public enum Grade {
	EXCELIENT(85, 100), GOOD(75, 85), PASS(60, 75), FAILURE(0, 60);

	private int min;
	private int max;

	/**
	 * 构造方法,注意枚举的构造使用private修饰
	 * @param min 最小分数
	 * @param max 最大分数
	 */
	private Grade(int min, int max) {
		this.max = max;
		this.min = min;
	}

	public int getMin() {
		return min;
	}

	public int getMax() {
		return max;
	}
	
	/**
	 * 重写Enum的valueOf()方法
	 * 传入分数score,返回成绩等级
	 * Grade.values()获取全部的枚举成员
	 * @param score 分数
	 * @return 成绩等级
	 */
	public static Grade valueOf(int score){
		for(Grade grade:Grade.values()){
			if(score>grade.min && score<grade.max)
				return grade;
		}
		return null;
	}
}

测试类:

package com.eyugame.enumdemo;
/**
 * 成绩等级测试
 * @see com.eyugame.enumdemo.Grade
 * @author gerdan
 *
 */
public class GradeDemo {

	public static void main(String[] args) {
		//调用valueof()静态方法
		Grade grade = Grade.valueOf(62);
		switch (grade) {
		case EXCELIENT:
			System.out.println("优秀");
			break;
		case GOOD:
			System.out.println("良好");
			break;
		case PASS:
			System.out.println("及格");
			break;
		case FAILURE:
			System.out.println("不及格");
			break;
		}
	}

}

上面案例中,我们重写了vauleOf()方法,通过valueOf()传入一个分数,就可以返回相应的枚举常量,应该将分数转换成等级的操作定义在枚举内部。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值