java enum分析
用法一:常量
在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分析相关推荐
- 注解和反射详细笔记。自定义注解,元注解,内置注解。反射机制,Java Reflection,Java内存分析,反射操作注解,java.lang.reflect.Method,Class
文章目录 注解 什么是注解 内置注解 元注解 自定义注解 反射机制 静态语言 vs 静态语言 Java Reflection 反射相关的主要API Class类 Java内存分析 创建运行时类的对象 ...
- java dump分析工具_java性能分析与常用工具
本次源码已放在Github:https://github.com/nateshao/jvm-tuning 个人博客 https://nateshao.gitee.io http://www.nates ...
- 如何使用Java Enum
简单的用法:JavaEnum简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值.如: 性别: public enum SexEnum {male, female;}颜色: public ...
- 【Java 虚拟机原理】垃圾回收算法( Java VisualVM 工具 | 安装 Visual GC 插件 | 使用 Java VisualVM 分析 GC 内存 )
文章目录 一.Java VisualVM 工具安装 Visual GC 插件 二.使用 Java VisualVM 分析 GC 内存 一.Java VisualVM 工具安装 Visual GC 插件 ...
- linux java性能监控工具_性能监控工具以及java堆分析OOM
一.性能监控工具 1.系统性能监控 Linux -确定系统运行的整体状态,基本定位问题所在 -uptime: ------系统时间 ------运行时间(例子中为127天) ------连接数(每个终 ...
- android enum java包_Android @IntDef注解取代Java enum枚举提高性能详解
Android @IntDef注解取代Java enum枚举提高性能 为提高Android性能,Android官方建议使用@IntDef注解替代Java的enum枚举.@IntDef的使用给出一个例子 ...
- Java Enum 枚举
Java Enum(枚举)是一个Java类 enum TestEnum{ a("Foo1"),b("Foo2"),c("Foo3") ...
- java异常——分析堆栈跟踪元素+使用异常机制的技巧
[0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java异常--分析堆栈跟踪元素+使用异常机制的技巧 的相关知识: [1]分析堆栈跟踪元素相关 ...
- 开源java性能分析工具_Java性能监控:您应该知道的5个开源工具
开源java性能分析工具 鲜为人知但有用:开源应用程序性能监视的状态 对于任何应用程序来说,最重要的事情之一就是性能. 我们要确保用户获得他们能获得的最佳体验,并想知道我们的应用已启动并正在运行. 这 ...
最新文章
- 1008: [HNOI2008]越狱(计数问题)
- c语言实现定长顺序存储,c语言:定长顺序串的基本操作实实现
- matlab在电气工程中的数值分析
- 5月30日,社区活动:SharePoint技术峰会
- springboot 启动分析【难点】——如何自动扫描 @SpringBootApplication||如何加载自动配置类 @EnableAutoConfiguration||如何加载前端控制器
- DSP学习 -- Visual Studio 操作
- 信息学奥赛C++语言:哥德巴赫猜想
- HTML5 Canvas平移,放缩,旋转演示
- 9102 BITRUN Hackathon is COMING!
- oracle 二进制日志格式,二进制日志
- 跟着图灵去听课——海底捞敏捷之道纪要
- SecureCRT使用技巧连载
- c语言实用程序6,C语言实用程序设计100例流程图
- java世界杯hashmap,Java练习题_Map 利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。...
- 2022常见软件测试面试题
- java-net-php-python-2020ssm考研题目管理系统计算机毕业设计程序
- 【Educational Codeforces Round 61 (Rated for Div. 2) D.Stressful Training】二分
- 《工程伦理与学术道德》第一章习题
- rhel系统启动过程_技术|Linux 开机引导和启动过程详解
- 题目1440:Goldbach's Conjecture(哥达巴赫猜想)
热门文章
- java 验证码 插件_javaweb中验证码插件Kaptcha的使用
- java业务层怎么设计_java – 在业务逻辑和数据层看起来重叠时分解它们的最佳设计?...
- Windows 下 Conda install 安装出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url解决措施
- mysql主从从配置详解_MySQL主从配置详解
- 项目管理:项目管理为什么难?
- Spring的IOC原理(通俗解释)
- 程序员编程必备名言佳句,提升装逼指数~
- .NET版Web后台快速开发框架 Coldairarrow
- JavaScript易错知识点整理
- python2.面向对象.学生管理