Enumeration 枚举类型

在一些程序运行时,它需要的数据不能是任意的,而必须是一定范围内的值

一个枚举也可以有构造函数、字段和方法

1.枚举类也可以看成是一种特殊形式的java类

2.枚举中声明的每一个枚举值代表枚举类的一个实例对象

3.与java中的普通类一样,在声明枚举类时,也可以声明属性、构造函数、方法,但是枚举类的构造方法必须为私有的

4.枚举类也可以继承接口,或继承抽象类

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

枚举的定义格式:

          enum 类型名{

          A,B,C;

           }

eg: enum Grade{

A("100-90"),B("89-80"),C("79-70");

.............

.............

}

上面的例子中Grade是枚举类型的名称(相当于定义了一个类的类名),A,B,C是枚举类型的值(相当于是对象)

 

枚举实例一:定义了一个分数级别的一个枚举类型,并根据类型的值打印出分数级别的范围

package cn.enumer;

import org.junit.Test;

public class Enumera {
	enum Grade {
		A("100-90"),B("89-80"),C("79-70"),D("69-60");
		//枚举类型的私有字段
		private String value;
		//枚举类型的构造方法
		private Grade(String value){ 
			this.value=value;
		}
		//枚举类型的方法
		public String getValue(){
			return value;
		}

	}
	@Test
	public void test(){
		print(Grade.C);
	}
	private void print(Grade g){
		String value=g.getValue();
		System.out.println(value);
	}

}

 

枚举实例二:带抽象方法的枚举类型,实现打印出成绩的评价

package cn.enumer;

import org.junit.Test;

public class abstractEnum {
	enum Grade {
		A("100-90"){
			public  String getLacal(){
				return "优";
			}
		},B("89-80"){
			public String getLacal(){
				return "良";
			}
			
		},C("79-70"){
            public String getLacal(){
            	return "一般";
			}
			
		},D("69-60"){
            public String getLacal(){
            	return "差";
			}
			
		};
		private String value;
		private Grade(String value){
			this.value=value;
		}
		public String getValue(){
			return value;
		}
		public abstract String getLacal();
	}
	@Test
	public void Test2(){
		print(Grade.A);
	}
	private void print(Grade g){
		String value=g.getLacal();
		//String value1=g.getValue();
		System.out.println(value);
	}
	

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值