Java enum类的定义即使用

枚举类的作用:

一些程序在运行时,需要的数据不是任意的,而必须实在一定的范围内的值,jdk5以前采用自定义类来实现解决,jdk5以后就可以采用枚举类解决。

枚举类的实现:

public enum Grade{
	 A("100-90"),B("89-80"),C("79-70"),D("69-60"),E("59-0");
}

显然,枚举类很像特殊的class,实际上enum声明定义的类就是一个类。

Java中声明的枚举类,均是java.lang.Enum类的孩子,他继承了Enum的所有方法。有如下常用方法:

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

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

static valueof()://将字符串转化为枚举常量,前提是枚举常亮必须有的

static values()://返回所有的枚举常量

具体用法:

package in.incast_02;

import org.junit.Test;

public class meiJuDemo {
	@Test
	public void test(){
		print(Grade.B);
	}
	public void print(Grade g){
		String value = g.loaclValue();
		System.out.println(value);
		//返回枚举常量的名称
		System.out.println(g.name());
		//返回枚举常量的序数
		System.out.println(g.ordinal());
		//返回所有的枚举常量
		Grade gs[] = Grade.values();
		
		for(Grade g1:gs){
			System.out.println(g1);
		}
		//将字符串转化为枚举常量,前提是枚举常亮必须有的
		String str="B";
		Grade g1 = Grade.valueOf(str);
		
		System.out.println(g1);
	}
	
}
///枚举类
enum Grade{
	 A("100-90"){
		 public String loaclValue(){
			 return "优";
		 }
	 }
	
	,B("89-80"){
		public String loaclValue(){
			 return "良";
		 }
	}
	,C("79-70"){
		public String loaclValue(){
			 return "中";
		 }
	}
	,D("69-60"){
		public String loaclValue(){
			 return "差";
		 }
	}
	,E("59-0"){
		public String loaclValue(){
			 return "不及格";
		 }
	};
	
	 private String value;
	 
	 private Grade(String value){
		 this.value=value;
	 }
	 
	 public String getValue(){
		 return this.value;
	 }
	 
	 public abstract String loaclValue();
}


你可能感兴趣的:(Java)