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种用法的更多相关文章

  1. java中 this 关键字的三种用法

    Java中this的三种用法 调用属性 (1)this可以调用本类中的任何成员变量 调用方法(可省略) (2)this调用本类中的成员方法(在main方法里面没有办法通过this调用) 调用构造方法 ...

  2. Java中this关键字的几种用法

    1 . 当成员变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量.(this是当前对象自己) 如:public class Hello { String s = " ...

  3. Java中Array.sort()的几种用法

    ****************************************************** * 精品书籍推荐:<Java从入门到经通> * 本书系统全面.浅显易懂,非常适 ...

  4. Java中Array.sort()的几种用法(需要初始化要排序的对象)

    ====================================================== 1.Arrays.sort(int[] a) 这种形式是对一个数组的所有元素进行排序,并且 ...

  5. 【转】Java 枚举7常见种用法

    原文网址:http://softbeta.iteye.com/blog/1185573 Java 枚举7常见种用法 博客分类: java java枚举enmu  原创地址:http://blog.li ...

  6. 浅谈在Java开发中的枚举的作用和用法

    枚举(enum),是指一个经过排序的.被打包成一个单一实体的项列表.一个枚举的实例可以使用枚举项列表中任意单一项的值.枚举在各个语言当中都有着广泛的应用,通常用来表示诸如颜色.方式.类别.状态等等数目 ...

  7. 说说Java中的枚举(一)

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

  8. Java中的枚举类型详解

    枚举类型介绍 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义 ...

  9. 扒一扒: Java 中的枚举

    目录 1. 枚举的定义 1.1 传统的非枚举方法 1.2 枚举方法 1.3 定义总结 2 枚举的本质 2.1 继承 java.lang.Enum 2.2 final 类型 2.3 枚举常量本身就是该类 ...

随机推荐

  1. Zepto源代码分析一~核心方法

    今天抽出时间复习了一下Zepto的源代码,依照自己的理解进行凝视. 欢迎大家拍砖. 源代码版本号:v1.1.4 源代码下载地址:http://zeptojs.com/ 分析总体代码之后,整理出架构图: ...

  2. RESTful Web Service实战 小结1

    1 REST的基本实现形式HTTP+URI+XML,但不是唯一形式.XML后来被Json格式替代.REST是一中架构风格(Representational State Transfer,表述性状态转移 ...

  3. unity, animator stateMachine立即触发状态转换

    例如按下键jump按钮人物执行跳起动作,同时动画状态由idle转换为jump,同时打开Game窗口和Animator窗口对比观察,发现人物跳起时动画状态并没有同步发生转换,而是有一定延迟,导致人物动画 ...

  4. Linux:命令执行控制&&与||

    1.&& 方式:command1 && command2 如果command1执行成功,则执行command2 2.|| 方式:command1 || command2 ...

  5. atitit.按钮光标滑过高亮切换以及其他动态效果的实现css html js --attilax总结

    atitit.按钮光标滑过高亮切换以及其他动态效果的实现css html  js --attilax总结 4. 鼠标越过动态图片切换实现 1 4.1. 优先模式::css模式... 1 4.2. 其次 ...

  6. [na]office 2010 2013卸载工具

    http://www.ithome.com/html/soft/32777.htm Office 2003 || Office 2007 || Office 2010.

  7. 我的高效编程的秘诀--开发环境的重要性(IOS)

    我觉得一个好的开发环境,能够让一个开发者的工作效率提高两倍以上,也能够让一个小白看上去不那么蠢: 开发环境不是仅仅安装一个xcode这种ide就OK了,在我看来开发环境的部署范围比較广泛,以下我来说说 ...

  8. JavaScript 高程三读书笔记;

    1. 在使用 <script> 嵌入 JavaScript 代码时,记住不要在代码中的任何地方出现 "</script>" 字符串. 例如,浏览器在加载下面 ...

  9. C++之虚析构函数

    代码一. #include <iostream> using namespace std; class Base { public: Base(){}; ~Base() { cout &l ...

  10. FreeRTOS官方翻译文档——第二章 队列管理

    2.1 概览基于 FreeRTOS 的应用程序由一组独立的任务构成——每个任务都是具有独立权限的小程序.这些独立的任务之间很可能会通过相互通信以提供有用的系统功能.FreeRTOS 中所有的通信与同步 ...