目录 1、枚举的简介 2、枚举的api的操作 3、项目中枚举的实例 ========================================================== 1、枚举的简介 什么是枚举? 需要在一定的范围内取值,这个值只能是这个范围内中的任意一个。 现实场景:交通信号灯,有三种颜色,但是每次只能亮三种颜色里面的任意一个。 使用一个关键字 enum public enum Color3 { RED,GREEN,YELLOW; } 枚举的构造方法也是私有的 特殊枚举的操作(了解) 1)在枚举类里面有构造方法 --构造方法里面有参数,需要在每个实例上面都写参数。 2)在枚举类里面有抽象方法 --在枚举的每个实例里面都重写这个抽象方法。 2、枚举的api的操作 name() :返回枚举的名称 ordinal() :枚举的下标,下标从0开始 valueOf(Class<T> enumType, String name) :得到枚举的对象 还有两个方法,都是这两个方法不在api里面,编译的时候生成两个方法 valueOf(String name) 转换枚举对象 values() 获得所有枚举对象数组 练习:枚举对象、枚举对象下标、枚举对象名称表示之间的转换 //知道枚举的对象,得到枚举名称和下标 public void test1() { //得到枚举对象 Color100 c100 = Color100.RED; //枚举名称 String name = c100.name(); //枚举的下标 int idx = c100.ordinal(); System.out.println(name+" "+idx); } =================================================== //知道枚举的名称,得到枚举的对象和下标 public void test2() { //枚举的名称 String name1 = "GREEN"; //得到对象 Color100 c1 = Color100.valueOf(name1); //枚举下标 int idx1 = c1.ordinal(); System.out.println(idx1); } =================================================== //知道枚举的下标,得到枚举的对象和名称 public void test3() { //枚举的下标 int idx2 = 2; //获得所有枚举对象数组 Color100[] cs = Color100.values(); //根据下标得到对象 Color100 c12 = cs[idx2]; //得到枚举的名称 String name = c12.name(); System.out.println(name); } 3、项目中枚举的实例 public enum AddressType { SHI("市", 14), XIAN("县", 15), QU("区", 16), XIANG_ZHEN_JIE_DAO("乡镇(街道)", 20), JIE_LU_XIANG_XIAO_QU("街路巷(小区)", 40), MEN_PAI("门牌", 100), MEN_PAI_FU_HAO("门牌附号", 101), LOU_ZHUANG_HAO("楼幢号", 102), GUOBIAO_QUXIAN("",321100), GUOBIAO_XIANGZHEN("",130000), GUOBIAO_HUSHI("",520000); private String mark ; //地址元素新增页面combobox需要字段 private int type ; //地址元素库对应字段 AddressType(String mark , int type){ this.mark = mark ; this.type = type ; } public String getMark() { return mark; } public void setMark(String mark) { this.mark = mark; } public int getType() { return type; } public void setType(int type) { this.type = type; } } ===================================================== 实例调用 public class TestEnum { @Test public void testDemo(){ String str = AddressType.SHI.getMark(); int aaa = AddressType.SHI.getType(); System.out.println(str+","+aaa); } }
jdk5.0新特性—— 枚举
猜你喜欢
转载自blog.csdn.net/weixin_42472048/article/details/81434806
今日推荐
周排行