Java中关于枚举的7种用法
1.定义常量:
public enum Color {
RED,ORANGE,YELLOW,GREEN,INDIGO,BLUE,PURPLE
}
2.用于switch:
enum Color {
RED,ORANGE,YELLOW,GREEN,INDIGO,BLUE,PURPLE
}
public class Draw{
Color c = Color.BLUE;
public void draw(){
switch(c){
case RED:
c = Color.RED;
break;
case ORANGE:
c = Color.ORANGE;
break;
case YELLOW:
c = Color.YELLOW;
break;
case GREEN:
c = Color.GREEN;
break;
case INDIGO:
c = Color.INDIGO;
break;
case BLUE:
c = Color.BLUE;
break;
case PURPLE:
c = Color.PURPLE;
break;
}
}
}
3.在枚举中添加新方法:
public enum Color {
RED(1,"红"),
ORANGE(2,"橙"),
YELLOW(3,"黄"),
GREEN(4,"绿"),
INDIGO(5,"靛"),
BLUE(6,"蓝"),
PURPLE(7,"紫");
//成员变量
private int sequence;
private String name;
//构造方法
private Color(int sequence, String name) {
this.sequence = sequence;
this.name = name;
}
//自定义方法
public static String getColorName(int sequence){
for (Color c : Color.values()) {
if(c.getSequence() == sequence)
return c.name;
}
return null;
}
//getter&setter
public int getSequence() {
return sequence;
}
public void setSequence(int sequence) {
this.sequence = sequence;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
4.覆盖(重写)枚举的方法:
public enum Color {
RED(1,"红"),
ORANGE(2,"橙"),
YELLOW(3,"黄"),
GREEN(4,"绿"),
INDIGO(5,"靛"),
BLUE(6,"蓝"),
PURPLE(7,"紫");
//成员变量
private int sequence;
private String name;
//构造方法
private Color(int sequence, String name) {
this.sequence = sequence;
this.name = name;
}
//覆盖方法
@Override
public String toString() {
return "顺序:"+this.sequence+"_颜色名:"+this.name;
}
}
5.实现接口:
interface Action{
void getDetail();
}
public enum Color implements Action{
RED(1,"红"),
ORANGE(2,"橙"),
YELLOW(3,"黄"),
GREEN(4,"绿"),
INDIGO(5,"靛"),
BLUE(6,"蓝"),
PURPLE(7,"紫");
//成员变量
private int sequence;
private String name;
//构造方法
private Color(int sequence, String name) {
this.sequence = sequence;
this.name = name;
}
@Override
public void getDetail() {
System.out.println("顺序:"+this.sequence+"_颜色名:"+this.name);
}
}
6.使用接口组织枚举:
public interface Food {
enum Coffee implements Food{
BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO
}
enum Dessert implements Food{
FRUIT, CAKE, GELATO
}
}
7.枚举集合:
java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的key是enum类型,而value则可以是任意类型。
Java中关于枚举的7种用法的更多相关文章
- java中 this 关键字的三种用法
Java中this的三种用法 调用属性 (1)this可以调用本类中的任何成员变量 调用方法(可省略) (2)this调用本类中的成员方法(在main方法里面没有办法通过this调用) 调用构造方法 ...
- Java中this关键字的几种用法
1 . 当成员变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量.(this是当前对象自己) 如:public class Hello { String s = " ...
- Java中Array.sort()的几种用法
****************************************************** * 精品书籍推荐:<Java从入门到经通> * 本书系统全面.浅显易懂,非常适 ...
- Java中Array.sort()的几种用法(需要初始化要排序的对象)
====================================================== 1.Arrays.sort(int[] a) 这种形式是对一个数组的所有元素进行排序,并且 ...
- 【转】Java 枚举7常见种用法
原文网址:http://softbeta.iteye.com/blog/1185573 Java 枚举7常见种用法 博客分类: java java枚举enmu 原创地址:http://blog.li ...
- 浅谈在Java开发中的枚举的作用和用法
枚举(enum),是指一个经过排序的.被打包成一个单一实体的项列表.一个枚举的实例可以使用枚举项列表中任意单一项的值.枚举在各个语言当中都有着广泛的应用,通常用来表示诸如颜色.方式.类别.状态等等数目 ...
- 说说Java中的枚举(一)
在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的.例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”. ...
- Java中的枚举类型详解
枚举类型介绍 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义 ...
- 扒一扒: Java 中的枚举
目录 1. 枚举的定义 1.1 传统的非枚举方法 1.2 枚举方法 1.3 定义总结 2 枚举的本质 2.1 继承 java.lang.Enum 2.2 final 类型 2.3 枚举常量本身就是该类 ...
随机推荐
- Zepto源代码分析一~核心方法
今天抽出时间复习了一下Zepto的源代码,依照自己的理解进行凝视. 欢迎大家拍砖. 源代码版本号:v1.1.4 源代码下载地址:http://zeptojs.com/ 分析总体代码之后,整理出架构图: ...
- RESTful Web Service实战 小结1
1 REST的基本实现形式HTTP+URI+XML,但不是唯一形式.XML后来被Json格式替代.REST是一中架构风格(Representational State Transfer,表述性状态转移 ...
- unity, animator stateMachine立即触发状态转换
例如按下键jump按钮人物执行跳起动作,同时动画状态由idle转换为jump,同时打开Game窗口和Animator窗口对比观察,发现人物跳起时动画状态并没有同步发生转换,而是有一定延迟,导致人物动画 ...
- Linux:命令执行控制&&与||
1.&& 方式:command1 && command2 如果command1执行成功,则执行command2 2.|| 方式:command1 || command2 ...
- atitit.按钮光标滑过高亮切换以及其他动态效果的实现css html js --attilax总结
atitit.按钮光标滑过高亮切换以及其他动态效果的实现css html js --attilax总结 4. 鼠标越过动态图片切换实现 1 4.1. 优先模式::css模式... 1 4.2. 其次 ...
- [na]office 2010 2013卸载工具
http://www.ithome.com/html/soft/32777.htm Office 2003 || Office 2007 || Office 2010.
- 我的高效编程的秘诀--开发环境的重要性(IOS)
我觉得一个好的开发环境,能够让一个开发者的工作效率提高两倍以上,也能够让一个小白看上去不那么蠢: 开发环境不是仅仅安装一个xcode这种ide就OK了,在我看来开发环境的部署范围比較广泛,以下我来说说 ...
- JavaScript 高程三读书笔记;
1. 在使用 <script> 嵌入 JavaScript 代码时,记住不要在代码中的任何地方出现 "</script>" 字符串. 例如,浏览器在加载下面 ...
- C++之虚析构函数
代码一. #include <iostream> using namespace std; class Base { public: Base(){}; ~Base() { cout &l ...
- FreeRTOS官方翻译文档——第二章 队列管理
2.1 概览基于 FreeRTOS 的应用程序由一组独立的任务构成——每个任务都是具有独立权限的小程序.这些独立的任务之间很可能会通过相互通信以提供有用的系统功能.FreeRTOS 中所有的通信与同步 ...