用法一:常量

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

public enum Color {  RED, GREEN, BLANK, YELLOW
} 

用法二:switch

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

enum Signal {GREEN, YELLOW, RED}public class TrafficLight {Signal color = Signal.RED;public void change() {switch (color) {case RED:color = Signal.GREEN;break;case YELLOW:color = Signal.RED;break;case GREEN:color = Signal.YELLOW;break;}}}

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

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

public enum Color {RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);// 成员变量private String name;private int index;// 构造方法private Color(String name, int index) {this.name = name;this.index = index;}// 普通方法public static String getName(int index) {for (Color c : Color.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()方法覆盖的例子。

public class Test {public enum Color {RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);// 成员变量private String name;private int index;// 构造方法private Color(String name, int index) {this.name = name;this.index = index;}// 覆盖方法
        @Overridepublic String toString() {return this.index + "_" + this.name;}}public static void main(String[] args) {System.out.println(Color.RED.toString());}
}

用法五:实现接口

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

public interface Behaviour {void print();String getInfo();}public enum Color implements Behaviour {RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);// 成员变量private String name;private int index;// 构造方法private Color(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);}}

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

public interface Food {enum Coffee implements Food {BLACK_COFFEE, DECAF_COFFEE, LATTE, CAPPUCCINO}enum Dessert implements Food {FRUIT, CAKE, GELATO}}

转载于:https://www.cnblogs.com/liutanghai/p/7216263.html

java enum分析相关推荐

  1. 注解和反射详细笔记。自定义注解,元注解,内置注解。反射机制,Java Reflection,Java内存分析,反射操作注解,java.lang.reflect.Method,Class

    文章目录 注解 什么是注解 内置注解 元注解 自定义注解 反射机制 静态语言 vs 静态语言 Java Reflection 反射相关的主要API Class类 Java内存分析 创建运行时类的对象 ...

  2. java dump分析工具_java性能分析与常用工具

    本次源码已放在Github:https://github.com/nateshao/jvm-tuning 个人博客 https://nateshao.gitee.io http://www.nates ...

  3. 如何使用Java Enum

    简单的用法:JavaEnum简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值.如: 性别: public enum SexEnum {male, female;}颜色: public ...

  4. 【Java 虚拟机原理】垃圾回收算法( Java VisualVM 工具 | 安装 Visual GC 插件 | 使用 Java VisualVM 分析 GC 内存 )

    文章目录 一.Java VisualVM 工具安装 Visual GC 插件 二.使用 Java VisualVM 分析 GC 内存 一.Java VisualVM 工具安装 Visual GC 插件 ...

  5. linux java性能监控工具_性能监控工具以及java堆分析OOM

    一.性能监控工具 1.系统性能监控 Linux -确定系统运行的整体状态,基本定位问题所在 -uptime: ------系统时间 ------运行时间(例子中为127天) ------连接数(每个终 ...

  6. android enum java包_Android @IntDef注解取代Java enum枚举提高性能详解

    Android @IntDef注解取代Java enum枚举提高性能 为提高Android性能,Android官方建议使用@IntDef注解替代Java的enum枚举.@IntDef的使用给出一个例子 ...

  7. Java Enum 枚举

    Java Enum(枚举)是一个Java类 enum TestEnum{     a("Foo1"),b("Foo2"),c("Foo3") ...

  8. java异常——分析堆栈跟踪元素+使用异常机制的技巧

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java异常--分析堆栈跟踪元素+使用异常机制的技巧 的相关知识: [1]分析堆栈跟踪元素相关 ...

  9. 开源java性能分析工具_Java性能监控:您应该知道的5个开源工具

    开源java性能分析工具 鲜为人知但有用:开源应用程序性能监视的状态 对于任何应用程序来说,最重要的事情之一就是性能. 我们要确保用户获得他们能获得的最佳体验,并想知道我们的应用已启动并正在运行. 这 ...

最新文章

  1. 1008: [HNOI2008]越狱(计数问题)
  2. c语言实现定长顺序存储,c语言:定长顺序串的基本操作实实现
  3. matlab在电气工程中的数值分析
  4. 5月30日,社区活动:SharePoint技术峰会
  5. springboot 启动分析【难点】——如何自动扫描 @SpringBootApplication||如何加载自动配置类 @EnableAutoConfiguration||如何加载前端控制器
  6. DSP学习 -- Visual Studio 操作
  7. 信息学奥赛C++语言:哥德巴赫猜想
  8. HTML5 Canvas平移,放缩,旋转演示
  9. 9102 BITRUN Hackathon is COMING!
  10. oracle 二进制日志格式,二进制日志
  11. 跟着图灵去听课——海底捞敏捷之道纪要
  12. SecureCRT使用技巧连载
  13. c语言实用程序6,C语言实用程序设计100例流程图
  14. java世界杯hashmap,Java练习题_Map 利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。...
  15. 2022常见软件测试面试题
  16. java-net-php-python-2020ssm考研题目管理系统计算机毕业设计程序
  17. 【Educational Codeforces Round 61 (Rated for Div. 2) D.Stressful Training】二分
  18. 《工程伦理与学术道德》第一章习题
  19. rhel系统启动过程_技术|Linux 开机引导和启动过程详解
  20. 题目1440:Goldbach's Conjecture(哥达巴赫猜想)

热门文章

  1. java 验证码 插件_javaweb中验证码插件Kaptcha的使用
  2. java业务层怎么设计_java – 在业务逻辑和数据层看起来重叠时分解它们的最佳设计?...
  3. Windows 下 Conda install 安装出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url解决措施
  4. mysql主从从配置详解_MySQL主从配置详解
  5. 项目管理:项目管理为什么难?
  6. Spring的IOC原理(通俗解释)
  7. 程序员编程必备名言佳句,提升装逼指数~
  8. .NET版Web后台快速开发框架 Coldairarrow
  9. JavaScript易错知识点整理
  10. python2.面向对象.学生管理