目录

用法一:常量

用法二:switch

用法三:向枚举中添加新方法

用法四:覆盖枚举的方法

用法五:实现接口

用法六:使用接口组织枚举

用法七:关于枚举集合的使用


用法一:常量

在JDK1.5 之前,我们定义常量都是: public static final.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

package util.enumUse;/*** 作为常量*/
public enum Constant{RED, GREEN, BLANK, YELLOW;
}
 

用法二:switch

JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。

package util.enumUse;
enum Signal {GREEN, YELLOW, RED
}/*** 作为swtich使用*/
public class SwitchEnum {private static Signal color = Signal.RED;public static void change() {switch (color) {case RED:color = Signal.GREEN;System.out.println("stop stop stop ");break;case YELLOW:color = Signal.RED;break;case GREEN:color = Signal.YELLOW;break;}}public static void main(String[] args) {change();}
}

用法三:向枚举中添加新方法

如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。

而且 Java 要求必须先定义 enum 实例。

package util.enumUse;public enum AddFunctions {RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);// 成员变量private String name;private int index;// 构造方法private AddFunctions(String name, int index) {this.name = name;this.index = index;}// 普通方法public static String getName(int index) {for (AddFunctions c : AddFunctions.values()) {if (c.getIndex() == index) {return c.name;}}return null;}// get set 方法public String getName() {return name;}public void setName(String name) {this.name = name;}public int getIndex() {return index;}public void setIndex(int index) {this.index = index;}
}

用法四:覆盖枚举的方法

下面给出一个toString()方法覆盖的例子。

package util.enumUse;public enum OverFunctions {RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);// 成员变量private String name;private int index;// 构造方法private OverFunctions(String name, int index) {this.name = name;this.index = index;}//覆盖方法@Overridepublic String toString() {return this.index+"_"+this.name;}
}
 

用法五:实现接口

所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。

package util.enumUse;interface Behaviour {void print();String getInfo();
}
public enum InterfaceImpl implements Behaviour{RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);// 成员变量private String name;private int index;// 构造方法private InterfaceImpl(String name, int index) {this.name = name;this.index = index;}//接口方法@Overridepublic String getInfo() {return this.name;}//接口方法@Overridepublic void print() {System.out.println(this.index+":"+this.name);}
}

用法六:使用接口组织枚举

package util.enumUse;/*** 接口管理枚举*/
public interface ManageEnums {enum Coffee implements ManageEnums{BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO}enum Dessert implements ManageEnums{FRUIT, CAKE, GELATO}
}
class Test{/*** 测试继承接口的枚举的使用(by 大师兄 or 大湿胸。)*/private static void testImplementsInterface() {for (ManageEnums.Coffee dessertEnum : ManageEnums.Coffee.values()) {System.out.println(dessertEnum.toString());}}public static void main(String[] args) {testImplementsInterface();}
}

用法七:关于枚举集合的使用

java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。

Java 枚举(enum) 详解7种常见的用法-小白笔记相关推荐

  1. Java 枚举(enum) 详解7种常见的用法<详细>

    JDK1.5引入了新的类型--枚举.在 Java 中它虽然算个"小"功能,却给我的开发带来了"大"方便. 大师兄我[大师兄]又加上自己的理解,来帮助各位理解一下 ...

  2. Java 枚举(enum) 详解7种常见的用法

    JDK1.5引入了新的类型--枚举.在 Java 中它虽然算个"小"功能,却给我的开发带来了"大"方便. 大师兄我[大师兄]又加上自己的理解,来帮助各位理解一下 ...

  3. Java 枚举(1): 详解7种常见的用法

    目录 用法一:常量 用法二:switch 用法三:向枚举中添加新方法 用法四:覆盖枚举的方法 用法五:实现接口 用法六:使用接口组织枚举 用法七:关于枚举集合的使用 JDK1.5引入了新的类型--枚举 ...

  4. 枚举(enum) 详解7种常见的用法

    用法一:常量 在JDK1.5 之前,我们定义常量都是: public static final.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. J ...

  5. Java (枚举) Enum 详解

    枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数.枚举在日常生活中很常见,例如表示星期的SUNDAY.MONDAY.TUESDAY.WEDNESDAY.THURSDAY.FRIDAY.SA ...

  6. java枚举使用详解

    http://www.cnblogs.com/linjiqin/archive/2011/02/11/1951632.html java枚举使用详解 在实际编程中,往往存在着这样的"数据集& ...

  7. 详解几种常见的RAID

    目录 •写在前面 •RAID是什么 •RAID的优点 •RAID-0 优势 缺点 •RAID-1 优点 缺点 •RAID1+0以及RAID0+1 优点 •RAID-5 •RAID-6 优点 缺点 •预 ...

  8. java中instanceof 详解_java中的instanceof用法详解

    instanceof是Java的一个二元操作符(运算符),也是Java的保留关键字.它的作用是判断其左边对象是否为其右边类的实例,返回的是boolean类型的数据.用它来判断某个对象是否是某个Clas ...

  9. Java 枚举(enum) 7种常见的用法

    在JDK1.5引入了新的类型--枚举.在 Java 中它虽然算个"小"功能,却给我的开发带来了"大"方便. 用法一:常量 在JDK1.5 之前,我们定义常量都是 ...

最新文章

  1. 特征值和特征向量的实际意义
  2. 信息安全技术 网络安全事件应急演练指南_省局举办网络安全培训讲座
  3. 19行代码AC——习题3-4 周期串(UVa-455)_解题报告
  4. 初学者设计数据库_面向初学者的完整数据库设计课程
  5. 华为系列设备优先级总结(三)
  6. Togu Audio Line推出最新版本的TAL-BassLine-101插件 支持M1芯片
  7. hive 不同用户 权限设置 出错处理
  8. 潜在失效模式和后果分析 FMEA 10分钟教程
  9. 深度学习网络训练技巧篇:神经网络初始化tricks---何凯明大神2018年新作(随机初始化网络)
  10. M3DGIS三维电子沙盘大数据人工智能元宇宙地理信息系统第5课
  11. rna聚类分析_新技术助力单细胞RNA测序数据聚类分析
  12. ZenCart facebook 登陆
  13. 2019年IT行业的十大热门岗位
  14. 图像的二阶导数为何对噪声尤为敏感-----图像二阶导数的本质
  15. 线上教学软件哪个平台好?
  16. xilinx vivado 2019 cordic ip 计算sin cos
  17. 【Mybatis源码】源码分析
  18. 谷底飞龙的技术博客集
  19. note9电量android系统应用,小米-Note-标准版-crDroid-V5.3-安卓9.0.0-来去电归属T9-农历等-多功能本地化增强适配...
  20. 3.3 锚框 or 先验框

热门文章

  1. phpexcel导入
  2. (7,3)循环码编码译码
  3. CentOS 64位 安装chrome
  4. 暑期培训计划之个人计划
  5. Linux系统怎么安装鲁大师,windows电脑下怎么安装苹果系统?
  6. soul 源码分析 —— 插件解析之monitor插件
  7. thinkjs能在浏览器html文件,thinkjs框架的默认模板引擎Nunjucks的中文文档
  8. 【HDOJ】1008 Elevator_天涯浪子_新浪博客
  9. 本地网页无法显示Flash的解决方案
  10. HTML前端输入一个值判断奇数还是偶数