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. static 与单例模式、auto_ptr与单例模式、const 用法小结、mutable修饰符

    一.static 与单例模式 单例模式也就是简单的一种设计模式,它需要: 保证一个类只有一个实例,并提供一个全局访问点 禁止拷贝  C++ Code  1 2 3 4 5 6 7 8 9 10 11 ...

  2. PHP is_callable 方法

    is_callable (PHP 4 >= 4.0.6, PHP 5) is_callable — 验证变量的内容是否能够进行函数调用 Description bool is_callable  ...

  3. 【DataStructure】Some useful methods about linkedList.

    /** * Method 1: Delete the input element x  * and meanwhile keep the length of array after deleted n ...

  4. atitit.提升研发管理的利器---重型框架 框架 类库的区别

    atitit.提升研发管理的利器---重型框架 框架 类库的区别 1. 重型框架就是it界的重武器. 1 2. 框架 VS. 库 可视化图形化 1 3. 应用框架 1 4. 类库 2 5. 框架是不可 ...

  5. CHero

    #ifndef __HERO_H__ #define __HERO_H__ #include "GameFrameHead.h" #include "GameParam. ...

  6. oracle 使用occi方式 批量插入多条数据

    if (vecInfo.empty()) { ; //数据为空,不上传,不上传标志设置为1,只有0表示上传成功 } std::string strUserName = userName; std::s ...

  7. 解决:Access denied for user 'root'@'localhost' (using password: YES)

    症状: 重新安装了MySQL,改变了root的密码,因此,在java代码中修改了某个DatabaseConnectionImpl的DBPASSWORD 在java中写了一些代码测试MySQL的插入和查 ...

  8. postgresql解决锁表

    --查询是否锁表了select oid from pg_class where relname='可能锁表了的表'select pid from pg_locks where relation='上面 ...

  9. C#调用SQL Server有参的存储过程

    一.使用SqlParameter的方式 代码: using System; using System.Collections.Generic; using System.ComponentModel; ...

  10. thinkphp 集成 twig模版引擎

    下载地址:https://github.com/fucongcong/ThinkPHPLevel/archive/master.zip 控制器格式为: <?php namespace Home\ ...