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 枚举常量本身就是该类 ...
 
随机推荐
- 温故而知新 js 点击空白处关闭气泡
			
诀窍1:使用el.contains(e) 来判断点击的区域诀窍2:使用mouseup 诀窍3:完成之后,移除事件 showpopover (e) { this.popover = !this.popo ...
 - C数组逆序
			
一.标准交换模式 /**** *标准交换模式 *实现数组的逆序,原理就是数组的首尾元素进行交换 ***/ #define N 5; int main(){ int array[N] = {15,20, ...
 - atitit.Oracle 9  10 11  12新特性attilax总结
			
atitit.Oracle 9 10 11 12新特性 1. ORACLE 11G新特性 1 1.1. oracle11G新特性 1 1.2. 审计 1 1.3. 1. 审计简介 1 1.4. ...
 - 内存控制函数(1)-mmap() 建立内存映射
			
示例1: 1.首先建立一个文本文件,名字为tmp,内容为hello world 2.编写mmap.c #include <sys/types.h> #include <sys/sta ...
 - 源码分析HotSpot GC过程(二):DefNewGeneration的GC过程
			
由于虚拟机的分代实现,虚拟机不会考虑各个内存代如何实现垃圾回收,具体的工作(对象内存的分配也是一样)由各内存代根据垃圾回收策略自行实现. DefNewGeneration的使用复制算法进行回收.复制算 ...
 - Windows Phone 性能优化(二)
			
这篇文章的 demo 是在 (一)的基础上进行的调整,逻辑基本相似.本文只列和 上一篇出不同的代码. 为了实现自定义的虚拟化,把上一篇文章的 ListBox 换成 ScrollViewer + Ite ...
 - line: 1: Syntax error: word unexpected (expecting ")")
			
开发板上运行可执行程序报出错误: line1: 1: Syntax error: word unexpected (expecting ")") 解决思路: 1.编译器的问题 用a ...
 - 0066 阿里云大学的几道Java基础测试题
			
阿里云大学的几道Java基础测试题: https://edu.aliyun.com/clouder/exam/intro/15 https://edu.aliyun.com/clouder/exam/ ...
 - ashx上传姿势
			
很多情况下网上流传的cer,asa,cdx……等等来上传,其实很多时候是不行的.但是ashx会好一些. PS:其实这个姿势也蛮老了,但是还是相当一大部分站点存在.也是一个姿势所以写博文记住它.免得忘了 ...
 - java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
			
转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...