5,枚举
一些程序在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,jdk5以前采用的自定义类来解决,jdk5以后可以直接采用枚举解决
package com.itcast.enumeration;
import org.junit.Test;
public class meiju {
//限定只可以传A B C D E
@Test
public void test(){
print(Grade.B);
}
public void print(Grade g){//限定只可以传A B C D E
String value= g.getValue();
System.out.println(value);
}
}
//传统方法,自定义
/*class Grade{
private Grade(){};
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();
}*/
//如何定义枚举的构造函数、方法个字段,去封装更多的信息
enum Grade{
A("100-90"),B("89-80"),C("79-70"),D("69-60"),E("59-50");
private String value;
private Grade(String value){
this.value=value;
}
public String getValue(){
return this.value;
}
}
输出结果为89-80
//带抽象方法的枚举
package com.itcast.enumeration;
import org.junit.Test;
public class CopyOfmeiju {
//限定只可以传A B C D E
@Test
public void test(){
print(Grade1.B);
}
@Test
public void test2(){
//获取枚举的名称
System.out.println(Grade.C.name());
//获取枚举的位置
System.out.println(Grade.C.ordinal());
String str="B";
Grade1 g=Grade1.valueOf(str);
System.out.println(g);
//遍历枚举的所有值
Grade gs[]= Grade.values();
for(Grade g2:gs){
System.out.println(g2);
}
}
public void print(Grade1 g){//限定只可以传A B C D E
String value= g.localValue();
System.out.println(value);
}
}
//传统方法,自定义
/*class Grade{
private Grade(){};
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();
}*/
//如何定义枚举的构造函数、方法个字段,去封装更多的信息
enum Grade1{
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-50"){
public String localValue(){
return "不及格";
}
};
private String value;
private Grade1(String value){
this.value=value;
}
public String getValue(){
return this.value;
}
public abstract String localValue();
}
输出结果为 良好
枚举具有的特点:
1,枚举是一种特殊形式的java类
2,枚举中声明的每一个枚举值代表枚举类的一个实例对象
3,枚举类的构造函数必须为私有的
4,枚举也可以实现接口、或继承抽象类
5,JDK5中扩展了switch语句,它除了可以接受int,byte,char,short外,还可以接受一个枚举类型
6,若枚举类只有一个枚举值,则可以当做单态设计模式使用
枚举例子,中文星期*
package com.itcast.enumeration;
import org.junit.Test;
public class WeekDAY1 {
public void prin(WeekDay day){
String chiDay=day.chinaWeek();
System.out.println(chiDay);
}
@Test
public void Test(){
prin(WeekDay.MON);
}
}
enum WeekDay{
MON("1"){
public String chinaWeek(){
return "星期一";
}
}
,TUE("2"){
public String chinaWeek(){
return "星期二";
}
}
,WED("3"){
public String chinaWeek(){
return "星期三";
}
}
,THU("4"){
public String chinaWeek(){
return "星期四";
}
}
,FRI("5"){
public String chinaWeek(){
return "星期五";
}
}
,SAT("6"){
public String chinaWeek(){
return "星期六";
}
}
,SUN("7"){
public String chinaWeek(){
return "星期七";
}
};
private String day;
private WeekDay(String day)
{
this.day=day;
}
public String getDay(String day){
return this.day;
}
public abstract String chinaWeek();
}
结果为星期一
分享到:
相关推荐
定义过滤方法: public List<Product> filterProductByPredicate(List<Product> list,MyPredicate<Product> mp){ List<Product> prods = new ArrayList(); for (Product prod : list){ if (mp.test(prod)){ ...
DK8600前置效果器 新款调试软件201908(中文版)
这两个芯片DK112和DK1203是专用小功率开关电源控制芯片,可实现12W以内(比如:5V2.4A,12V0.5A)的电源方案,可广泛用于电源适配器、LED电源、电磁炉、 空 调、DVD等小家电产品。 这两个芯片DK112和DK1203内置过流...
DK3000说明书。产品使用说明书
11.4枚举的二种实现方式 11.5自定义类实现枚举-应用案例 11.6自定义类实现枚举-小结 11.6.1小结 11.7e num关键字实现枚举-快速 入门 11.7.1说明 11.7.2e num关键字实现枚举注 意事项 11.8e num关键字实现枚举-课堂 ...
中联电话交换机DK1208
DK1203新型电源芯片替换RM6203说明文档,电源芯片设计资料
DK泵分解组装图,帮助你更好的了解DK结构及动作原理。
DK专版流量测试,支持CC UDP SYN TCP
东坤对讲机DK-328对讲机写频软件,自己用过的,确定可以使用!请下载前看清您的对讲机的品牌和型号和上面对应哦!
[[DK书籍].animals [DK书籍].animals [DK书籍].animals DK书籍].animals
DK100RGB驱动 V1.0 20220523.exe
功能描述 :DK124 是一款离线式开关电源芯片,最大输出功率达到 24W。不同于 PWM 控制器和外部 分立功率 MOS 组合的解决方案,DK124 内部集成了 PWM 控制器、700V 功率管和初级峰值 电流检测电路,并采用了可以省略...
DK2300系列PID控制器是基于微处理器技术的单回路过程控制器、显示仪表,可对温度,压力,流量等过程参量进行控制和显示,仪表设置灵活,组态方便,操作简单。 该系列包括:DK2304、DK2306、DK2308、DK23H8、DK2316...
DK企业网站管理系统 DK企业网站管理系统
The TatukGIS Developer Kernel (DK) is a comprehensive GIS development toolkit incorporating 2,200 public/protected functions and properties. The DK is offered as two separate products: 1) a native ...
DK-630DK-630DK-630DK-630
nRF52-DK 上手指南 1.0
非官方不完全WOW DK手册 强力登场
DK大家都知道的 远控无压力 免杀主流杀毒软件 360除外