枚举的主流使用方式
来源:互联网 发布:网络营销模拟软件 编辑:程序博客网 时间:2024/06/10 21:15
枚举的好处
- 保证类型安全
- 够直观
枚举的主流用法
- 普通常量用法
//Enum 的枚举值 默认都是 public static final 的 enum Zoo{ ORANGE, BLUE, WHITE } public class ProtectZoo{ Zoo z = Zoo.BLUE; public void change(){ switch (z){ case BLUE: break; case WHITE: break; case ORANGE: break; } } }
- 自定义的枚举用法
enum Zoo{ //这种自定义方法的,要在最后一个后面加分号 ";",并且要重写和下面参数对应的构造方法 //关键是这种枚举值的定义要放在首位 ELEPHANT("大象", 0), LION("狮子", 1), COW("牛", 2); private String name; private int ordenal; private Zoo(String name, int ordinal){ //因为我们创建的枚举类(比如-Zoo)默认是继承Enum的。(因此此时的Zoo不能再继承任何class类,但是可以实现interface接口) //不能有public 构造方法,为保证用户无法再创建枚举实例 //(覆盖父类)构造方法要私有 this.name = name; this.ordenal = ordinal; } //根据 "序数" 获取对应的动物的名称 public String getAnimalName(int ordinal){ //枚举使用这种遍历方式取值 for (Zoo animal : Zoo.values()){ if(animal.ordenal == ordinal){ return animal.name; } } return null; } public String getName(){ return this.name; } public void setName(String name){ this.name = name; } public int getOrdinal(){ return this.ordenal; } public void setOrdinal(int ordenal){ this.ordenal = ordenal; } //重写 枚举类 中的toString 方法,来实现自己的需求 @Override public String toString(){ return "北京动物园:"+this.name+"-"+this.ordenal; } }
- 实现接口的枚举用法
interface Food{ void onSteamed();//清蒸 void onFried();//油炸 } enum Zoo implements Food{ //这种自定义方法的,要在最后一个后面加分号 ";",并且要重写和下面参数对应的构造方法 //关键是这种枚举值的定义要放在首位 ELEPHANT("大象", 0), LION("狮子", 1), COW("牛", 2); private String name; private int ordenal; private Zoo(String name, int ordinal){ //因为我们创建的枚举类(比如-Zoo)默认是继承Enum的。(因此此时的Zoo不能再继承任何class类,但是可以实现interface接口) //不能有public 构造方法,为保证用户无法再创建枚举实例 //(覆盖父类)构造方法要私有 this.name = name; this.ordenal = ordinal; } @Override public void onSteamed() { //这里要实现接口的方法,然后在方法中做对应逻辑处理就ok } @Override public void onFried() { //这里要实现接口的方法,然后在方法中做对应逻辑处理就ok } //根据 "序数" 获取对应的动物的名称 public String getAnimalName(int ordinal){ //枚举使用这种遍历方式取值 for (Zoo animal : Zoo.values()){ if(animal.ordenal == ordinal){ return animal.name; } } return null; } public String getName(){ return this.name; } public void setName(String name){ this.name = name; } public int getOrdinal(){ return this.ordenal; } public void setOrdinal(int ordenal){ this.ordenal = ordenal; } //重写 枚举类 中的toString 方法,来实现自己的需求 @Override public String toString(){ return "北京动物园:"+this.name+"-"+this.ordenal; } }
- EnumSet和EnumMap的用法
EnumSet保证集合中的元素不重复;EnumMap保证的是key必须是Enum类型的元素,value是任意类型值。enum Zoo { //这种自定义方法的,要在最后一个后面加分号 ";",并且要重写和下面参数对应的构造方法 //关键是这种枚举值的定义要放在首位 ELEPHANT("大象", 0), LION("狮子", 1), COW("牛", 2); private String name; private int ordenal; private EnumMap<Zoo, String> enumMap = new EnumMap<Zoo, String>(Zoo.class); private Zoo(String name, int ordinal){ //因为我们创建的枚举类(比如-Zoo)默认是继承Enum的。(因此此时的Zoo不能再继承任何class类,但是可以实现interface接口) //不能有public 构造方法,为保证用户无法再创建枚举实例 //(覆盖父类)构造方法要私有 this.name = name; this.ordenal = ordinal; } public void setZooCowName(String name){ enumMap.put(Zoo.COW, name); } }
- 枚举元素自定义用法
enum Zoo { //这种自定义方法的,要在最后一个后面加分号 ";",并且要重写和下面参数对应的构造方法 //关键是这种枚举值的定义要放在首位 ELEPHANT{ @Override public String getAnimalName() { return super.getAnimalName(); } }, LION{ @Override public String getAnimalName() { return super.getAnimalName(); } }, COW{ @Override public String getAnimalName() { return super.getAnimalName(); } }; public String getAnimalName(){ //"这里随便写了一个获取动物名称的方法,为了让自定义元素去实现这个方法,完成自定义元素的目的" String cowName = Zoo.COW.getAnimalName(); return cowName; } }
//Enum 的枚举值 默认都是 public static final 的 enum Zoo{ ORANGE, BLUE, WHITE } public class ProtectZoo{ Zoo z = Zoo.BLUE; public void change(){ switch (z){ case BLUE: break; case WHITE: break; case ORANGE: break; } } }
- 自定义的枚举用法
enum Zoo{ //这种自定义方法的,要在最后一个后面加分号 ";",并且要重写和下面参数对应的构造方法 //关键是这种枚举值的定义要放在首位 ELEPHANT("大象", 0), LION("狮子", 1), COW("牛", 2); private String name; private int ordenal; private Zoo(String name, int ordinal){ //因为我们创建的枚举类(比如-Zoo)默认是继承Enum的。(因此此时的Zoo不能再继承任何class类,但是可以实现interface接口) //不能有public 构造方法,为保证用户无法再创建枚举实例 //(覆盖父类)构造方法要私有 this.name = name; this.ordenal = ordinal; } //根据 "序数" 获取对应的动物的名称 public String getAnimalName(int ordinal){ //枚举使用这种遍历方式取值 for (Zoo animal : Zoo.values()){ if(animal.ordenal == ordinal){ return animal.name; } } return null; } public String getName(){ return this.name; } public void setName(String name){ this.name = name; } public int getOrdinal(){ return this.ordenal; } public void setOrdinal(int ordenal){ this.ordenal = ordenal; } //重写 枚举类 中的toString 方法,来实现自己的需求 @Override public String toString(){ return "北京动物园:"+this.name+"-"+this.ordenal; } }
- 实现接口的枚举用法
interface Food{ void onSteamed();//清蒸 void onFried();//油炸 } enum Zoo implements Food{ //这种自定义方法的,要在最后一个后面加分号 ";",并且要重写和下面参数对应的构造方法 //关键是这种枚举值的定义要放在首位 ELEPHANT("大象", 0), LION("狮子", 1), COW("牛", 2); private String name; private int ordenal; private Zoo(String name, int ordinal){ //因为我们创建的枚举类(比如-Zoo)默认是继承Enum的。(因此此时的Zoo不能再继承任何class类,但是可以实现interface接口) //不能有public 构造方法,为保证用户无法再创建枚举实例 //(覆盖父类)构造方法要私有 this.name = name; this.ordenal = ordinal; } @Override public void onSteamed() { //这里要实现接口的方法,然后在方法中做对应逻辑处理就ok } @Override public void onFried() { //这里要实现接口的方法,然后在方法中做对应逻辑处理就ok } //根据 "序数" 获取对应的动物的名称 public String getAnimalName(int ordinal){ //枚举使用这种遍历方式取值 for (Zoo animal : Zoo.values()){ if(animal.ordenal == ordinal){ return animal.name; } } return null; } public String getName(){ return this.name; } public void setName(String name){ this.name = name; } public int getOrdinal(){ return this.ordenal; } public void setOrdinal(int ordenal){ this.ordenal = ordenal; } //重写 枚举类 中的toString 方法,来实现自己的需求 @Override public String toString(){ return "北京动物园:"+this.name+"-"+this.ordenal; } }
- EnumSet和EnumMap的用法
EnumSet保证集合中的元素不重复;EnumMap保证的是key必须是Enum类型的元素,value是任意类型值。enum Zoo { //这种自定义方法的,要在最后一个后面加分号 ";",并且要重写和下面参数对应的构造方法 //关键是这种枚举值的定义要放在首位 ELEPHANT("大象", 0), LION("狮子", 1), COW("牛", 2); private String name; private int ordenal; private EnumMap<Zoo, String> enumMap = new EnumMap<Zoo, String>(Zoo.class); private Zoo(String name, int ordinal){ //因为我们创建的枚举类(比如-Zoo)默认是继承Enum的。(因此此时的Zoo不能再继承任何class类,但是可以实现interface接口) //不能有public 构造方法,为保证用户无法再创建枚举实例 //(覆盖父类)构造方法要私有 this.name = name; this.ordenal = ordinal; } public void setZooCowName(String name){ enumMap.put(Zoo.COW, name); } }
- 枚举元素自定义用法
enum Zoo { //这种自定义方法的,要在最后一个后面加分号 ";",并且要重写和下面参数对应的构造方法 //关键是这种枚举值的定义要放在首位 ELEPHANT{ @Override public String getAnimalName() { return super.getAnimalName(); } }, LION{ @Override public String getAnimalName() { return super.getAnimalName(); } }, COW{ @Override public String getAnimalName() { return super.getAnimalName(); } }; public String getAnimalName(){ //"这里随便写了一个获取动物名称的方法,为了让自定义元素去实现这个方法,完成自定义元素的目的" String cowName = Zoo.COW.getAnimalName(); return cowName; } }
interface Food{ void onSteamed();//清蒸 void onFried();//油炸 } enum Zoo implements Food{ //这种自定义方法的,要在最后一个后面加分号 ";",并且要重写和下面参数对应的构造方法 //关键是这种枚举值的定义要放在首位 ELEPHANT("大象", 0), LION("狮子", 1), COW("牛", 2); private String name; private int ordenal; private Zoo(String name, int ordinal){ //因为我们创建的枚举类(比如-Zoo)默认是继承Enum的。(因此此时的Zoo不能再继承任何class类,但是可以实现interface接口) //不能有public 构造方法,为保证用户无法再创建枚举实例 //(覆盖父类)构造方法要私有 this.name = name; this.ordenal = ordinal; } @Override public void onSteamed() { //这里要实现接口的方法,然后在方法中做对应逻辑处理就ok } @Override public void onFried() { //这里要实现接口的方法,然后在方法中做对应逻辑处理就ok } //根据 "序数" 获取对应的动物的名称 public String getAnimalName(int ordinal){ //枚举使用这种遍历方式取值 for (Zoo animal : Zoo.values()){ if(animal.ordenal == ordinal){ return animal.name; } } return null; } public String getName(){ return this.name; } public void setName(String name){ this.name = name; } public int getOrdinal(){ return this.ordenal; } public void setOrdinal(int ordenal){ this.ordenal = ordenal; } //重写 枚举类 中的toString 方法,来实现自己的需求 @Override public String toString(){ return "北京动物园:"+this.name+"-"+this.ordenal; } }
- EnumSet和EnumMap的用法
EnumSet保证集合中的元素不重复;EnumMap保证的是key必须是Enum类型的元素,value是任意类型值。enum Zoo { //这种自定义方法的,要在最后一个后面加分号 ";",并且要重写和下面参数对应的构造方法 //关键是这种枚举值的定义要放在首位 ELEPHANT("大象", 0), LION("狮子", 1), COW("牛", 2); private String name; private int ordenal; private EnumMap<Zoo, String> enumMap = new EnumMap<Zoo, String>(Zoo.class); private Zoo(String name, int ordinal){ //因为我们创建的枚举类(比如-Zoo)默认是继承Enum的。(因此此时的Zoo不能再继承任何class类,但是可以实现interface接口) //不能有public 构造方法,为保证用户无法再创建枚举实例 //(覆盖父类)构造方法要私有 this.name = name; this.ordenal = ordinal; } public void setZooCowName(String name){ enumMap.put(Zoo.COW, name); } }
enum Zoo { //这种自定义方法的,要在最后一个后面加分号 ";",并且要重写和下面参数对应的构造方法 //关键是这种枚举值的定义要放在首位 ELEPHANT("大象", 0), LION("狮子", 1), COW("牛", 2); private String name; private int ordenal; private EnumMap<Zoo, String> enumMap = new EnumMap<Zoo, String>(Zoo.class); private Zoo(String name, int ordinal){ //因为我们创建的枚举类(比如-Zoo)默认是继承Enum的。(因此此时的Zoo不能再继承任何class类,但是可以实现interface接口) //不能有public 构造方法,为保证用户无法再创建枚举实例 //(覆盖父类)构造方法要私有 this.name = name; this.ordenal = ordinal; } public void setZooCowName(String name){ enumMap.put(Zoo.COW, name); } }
- 枚举元素自定义用法
enum Zoo { //这种自定义方法的,要在最后一个后面加分号 ";",并且要重写和下面参数对应的构造方法 //关键是这种枚举值的定义要放在首位 ELEPHANT{ @Override public String getAnimalName() { return super.getAnimalName(); } }, LION{ @Override public String getAnimalName() { return super.getAnimalName(); } }, COW{ @Override public String getAnimalName() { return super.getAnimalName(); } }; public String getAnimalName(){ //"这里随便写了一个获取动物名称的方法,为了让自定义元素去实现这个方法,完成自定义元素的目的" String cowName = Zoo.COW.getAnimalName(); return cowName; } }
enum Zoo { //这种自定义方法的,要在最后一个后面加分号 ";",并且要重写和下面参数对应的构造方法 //关键是这种枚举值的定义要放在首位 ELEPHANT{ @Override public String getAnimalName() { return super.getAnimalName(); } }, LION{ @Override public String getAnimalName() { return super.getAnimalName(); } }, COW{ @Override public String getAnimalName() { return super.getAnimalName(); } }; public String getAnimalName(){ //"这里随便写了一个获取动物名称的方法,为了让自定义元素去实现这个方法,完成自定义元素的目的" String cowName = Zoo.COW.getAnimalName(); return cowName; } }
阅读全文
0 0
- 枚举的主流使用方式
- 枚举常用的使用方式
- 枚举enum的使用方式
- Java枚举的几种使用方式
- Java中枚举类型Enum的一种使用方式
- Objective-C枚举的几种定义方式与使用
- Java中枚举类型Enum的一种使用方式
- Android中使用注解来代替枚举类的方式
- 使用 进制转换的方式,生成枚举密码!!
- 主流的的 CSS 清理浮动方式
- 使用javascript用一种非主流的方式提交POST表单
- java连接主流数据库的方式总结
- 主流的网络游戏同步方式一览
- 主流使用的AAC编码器
- 基础框架之枚举使用方式
- Java枚举使用方式和注意事项
- 使用枚举的方法
- 枚举类型的使用
- jQuery函数attr()和prop()的区别
- Deep Convolutional Nets for Semantic Image Segmentation with Deep Gaussian CRFs
- Centos7更新阿里云yum源
- Linux在线安装mysql
- Java面试---Spring框架
- 枚举的主流使用方式
- jQuery 源码学习(一)jQuery.extend()
- Android开发之线程池使用总结
- Java过滤器(Filter)的工作原理和代码演示
- js实现图片轮播
- Composer使用总结
- 2017能源互联网和智慧能源产业领域唯一专业博览会
- jQuery(document).ready(function($) { });的几种表示方法
- java.util包