DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。

用法一:常量

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

  1. public enum Color {
  2. RED, GREEN, BLANK, YELLOW
  3. }

用法二:switch

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

  1. enum Signal {
  2. GREEN, YELLOW, RED
  3. }
  4. public class TrafficLight {
  5. Signal color = Signal.RED;
  6. public void change() {
  7. switch (color) {
  8. case RED:
  9. color = Signal.GREEN;
  10. break;
  11. case YELLOW:
  12. color = Signal.RED;
  13. break;
  14. case GREEN:
  15. color = Signal.YELLOW;
  16. break;
  17. }
  18. }
  19. }

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

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

  1. public enum Color {
  2. RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
  3. // 成员变量
  4. private String name;
  5. private int index;
  6. // 构造方法
  7. private Color(String name, int index) {
  8. this.name = name;
  9. this.index = index;
  10. }
  11. // 普通方法
  12. public static String getName(int index) {
  13. for (Color c : Color.values()) {
  14. if (c.getIndex() == index) {
  15. return c.name;
  16. }
  17. }
  18. return null;
  19. }
  20. // get set 方法
  21. public String getName() {
  22. return name;
  23. }
  24. public void setName(String name) {
  25. this.name = name;
  26. }
  27. public int getIndex() {
  28. return index;
  29. }
  30. public void setIndex(int index) {
  31. this.index = index;
  32. }
  33. }

用法四:覆盖枚举的方法

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

  1. public enum Color {
  2. RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
  3. // 成员变量
  4. private String name;
  5. private int index;
  6. // 构造方法
  7. private Color(String name, int index) {
  8. this.name = name;
  9. this.index = index;
  10. }
  11. //覆盖方法
  12. @Override
  13. public String toString() {
  14. return this.index+"_"+this.name;
  15. }
  16. }

Java enum(枚举)使用详解之三的更多相关文章

  1. java enum(枚举)使用详解 + 总结

    enum 的全称为 enumeration, 是 JDK 1.5  中引入的新特性,存放在 java.lang 包中. 下面是我在使用 enum 过程中的一些经验和总结,主要包括如下内容: 1. 原始 ...

  2. java enum(枚举)使用详解 + 总结(转载)

    enum 的全称为 enumeration, 是 JDK 1.5  中引入的新特性,存放在 java.lang 包中. 下面是我在使用 enum 过程中的一些经验和总结,主要包括如下内容: 1. 原始 ...

  3. C语言--enum,typedef enum 枚举类型详解

    原文:http://z515256164.blog.163.com/blog/static/32443029201192182854300/ 有改动 C语言详解 - 枚举类型 注:以下全部代码的执行环 ...

  4. 【转】Java enum的用法详解

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

  5. Java enum的用法详解[转]

    Ref:http://www.cnblogs.com/happyPawpaw/archive/2013/04/09/3009553.html 用法一:常量 在JDK1.5 之前,我们定义常量都是: p ...

  6. Java enum的用法详解

    (转自:http://www.cnblogs.com/happyPawpaw/archive/2013/04/09/3009553.html) 用法一:常量 在JDK1.5 之前,我们定义常量都是: ...

  7. Java enum的用法详解 (转)

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

  8. [Java基础] Java enum的用法详解

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

  9. Java enum枚举类型

    java的枚举类型详解: 简单示例: public enum Color{ RED,BLUE,BLACK,YELLOW,GREEN } 复杂示例(带自定义构造方法与类型) public enum En ...

  10. java枚举使用详解

    在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集” ...

随机推荐

  1. R语言set.seed()函数介绍

    set.seed(),该命令的作用是设定生成随机数的种子,种子是为了让结果具有重复性.如果不设定种子,生成的随机数无法重现.这个函数的主要目的,是让你的模拟能够可重复出现,因为很多时候我们需要取随机数 ...

  2. C#泛型命名潜规则

    public class List<T>{} public class LinkedList<T>{} public class SortedList<TKey,TVal ...

  3. 使VS自动生成代码注释

    1.注释模板位置C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplatesCache 里面有各种脚本的模板 2.找到 ...

  4. LeetCode:最长回文子串【5】

    LeetCode:最长回文子串[5] 题目描述 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为1000. 示例 1: 输入: "babad" 输出: ...

  5. ubuntu 16.04 jenkins pipline的实现 最终docker启动服务

    准备工作:两台虚拟机A:192.168.1.60 B:192.168.1.61 C:一个存放代码的代码库(github)A:jenkins git docker openssh-server(ssh) ...

  6. [转]eclipse中的常用快捷键

    1.选中你要加注释的区域,用ctrl+shift+C 会加上//注释2.先把你要注释的东西选中,用shit+ctrl+/ 会加上注释3.要修改在eclispe中的命令的快捷键方式我们只需进入windo ...

  7. tornado源码分析

    初识tornado 首先从经典的helloword案例入手 import tornado.ioloop import tornado.web class MainHandler(tornado.web ...

  8. MySQL的进程状态

    通过show processlist查看MySQL的进程状态,在State列上面的状态有如下这些: Analyzing线程对MyISAM 表的统计信息做分析(例如, ANALYZE TABLE ).c ...

  9. elasticsearch查询及logstash简介

    Query DSL: request body: 分成两类: query dsl:执行full-text查询时,基于相关度来评判其匹配结果: 查询执行过程复杂,且不会被缓存: filter dsl:执 ...

  10. asp.net ajax实现md5加密

    1. [图片] asp.net ajax 效果截图.png 2. [代码]前端代码HTML/Javascript/jQuery <!DOCTYPE html PUBLIC "-//W3 ...