1.定义常量:

  1. public enum Color {
  2. RED,ORANGE,YELLOW,GREEN,INDIGO,BLUE,PURPLE
  3. }

2.用于switch:

  1. enum Color {
  2. RED,ORANGE,YELLOW,GREEN,INDIGO,BLUE,PURPLE
  3. }
  4. public class Draw{
  5. Color c = Color.BLUE;
  6. public void draw(){
  7. switch(c){
  8. case RED:
  9. c = Color.RED;
  10. break;
  11. case ORANGE:
  12. c = Color.ORANGE;
  13. break;
  14. case YELLOW:
  15. c = Color.YELLOW;
  16. break;
  17. case GREEN:
  18. c = Color.GREEN;
  19. break;
  20. case INDIGO:
  21. c = Color.INDIGO;
  22. break;
  23. case BLUE:
  24. c = Color.BLUE;
  25. break;
  26. case PURPLE:
  27. c = Color.PURPLE;
  28. break;
  29. }
  30. }
  31. } 

3.在枚举中添加新方法:

  1. public enum Color {
  2. RED(1,"红"),
  3. ORANGE(2,"橙"),
  4. YELLOW(3,"黄"),
  5. GREEN(4,"绿"),
  6. INDIGO(5,"靛"),
  7. BLUE(6,"蓝"),
  8. PURPLE(7,"紫");
  9. //成员变量
  10. private int sequence;
  11. private String name;
  12. //构造方法
  13. private Color(int sequence, String name) {
  14. this.sequence = sequence;
  15. this.name = name;
  16. }
  17. //自定义方法
  18. public static String getColorName(int sequence){
  19. for (Color c : Color.values()) {
  20. if(c.getSequence() == sequence)
  21. return c.name;
  22. }
  23. return null;
  24. }
  25. //getter&setter
  26. public int getSequence() {
  27. return sequence;
  28. }
  29. public void setSequence(int sequence) {
  30. this.sequence = sequence;
  31. }
  32. public String getName() {
  33. return name;
  34. }
  35. public void setName(String name) {
  36. this.name = name;
  37. }
  38. }

4.覆盖(重写)枚举的方法:

  1. public enum Color {
  2. RED(1,"红"),
  3. ORANGE(2,"橙"),
  4. YELLOW(3,"黄"),
  5. GREEN(4,"绿"),
  6. INDIGO(5,"靛"),
  7. BLUE(6,"蓝"),
  8. PURPLE(7,"紫");
  9. //成员变量
  10. private int sequence;
  11. private String name;
  12. //构造方法
  13. private Color(int sequence, String name) {
  14. this.sequence = sequence;
  15. this.name = name;
  16. }
  17. //覆盖方法
  18. @Override
  19. public String toString() {
  20. return "顺序:"+this.sequence+"_颜色名:"+this.name;
  21. }
  22. }

5.实现接口:

  1. interface Action{
  2. void getDetail();
  3. }
  4. public enum Color implements Action{
  5. RED(1,"红"),
  6. ORANGE(2,"橙"),
  7. YELLOW(3,"黄"),
  8. GREEN(4,"绿"),
  9. INDIGO(5,"靛"),
  10. BLUE(6,"蓝"),
  11. PURPLE(7,"紫");
  12. //成员变量
  13. private int sequence;
  14. private String name;
  15. //构造方法
  16. private Color(int sequence, String name) {
  17. this.sequence = sequence;
  18. this.name = name;
  19. }
  20. @Override
  21. public void getDetail() {
  22. System.out.println("顺序:"+this.sequence+"_颜色名:"+this.name);
  23. }
  24. }

6.使用接口组织枚举:

  1. public interface Food {
  2. enum Coffee implements Food{
  3. BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO
  4. }
  5. enum Dessert implements Food{
  6. FRUIT, CAKE, GELATO
  7. }
  8. }

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. 分别用C和C++来实现一个链栈

    下面通过分别用C和C++来实现一个链栈(链表实现),从中体会数据封装抽象的思想: C语言实现:  C++ Code  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

  2. Python根据系统环境配置日志,Python配置日志 Python logger

    我们通常在写爬虫的时候,需要配置日志,但是有可能是在windows开发的,但是程序的运行环境可是是在Linux中,这时候我们就需要不停的更换日志的目录了 但是我们可以实现通过判断不同的运行环境,来时间 ...

  3. python __path__ 变量

    今天在读django源码的时候遇到了一个问题!它就是__path__这个系统变量 一.__path__变更初见: 由__path__这个变量的名字就知道,这个是一个系统变量,不是用户自定义的变量,于是 ...

  4. Hadoop-2.2.0中文文档—— Shell命令

    FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args>的形式. 全部的的FS shell命令使用URI路径作为參数.URI格式是scheme: ...

  5. vim中不同模式的帮助信息的查找

    vim的模式有多种,比如normal(普通模式),insert(插入模式),command(命令行模式),visual(可视化模式).相同的命令和快捷键在不同的模式下功能是不一样的,因此帮助信息也是分 ...

  6. Linux硬盘速度测试的命令

    测试下硬盘的读写速度如何,在linux下可以使用hdparm 对硬盘进行测试或查看硬盘的相关信息. hdparm 命令进行硬盘速度测试.参数: -a 表示是否关闭磁盘预读取功能.对于大文件读取,这个显 ...

  7. CWidgetMgr---H

    /************************************************************************/ //管理部件 //部件自动根据Z顺序调整消息的优先 ...

  8. session退出页面

    简单的session退出页面,jsp: <%@ page language="java" contentType="text/html; charset=utf-8 ...

  9. cocos2d-x聊天气泡

    用cocos2d-x做聊天气泡在网上搜索了一下提示用CCScale9Sprite,这个类可以不缩放边角只 缩放中心,正好符合气泡的要求. 说一下思路,头像都是用cocosbuilder做的ccb,在代 ...

  10. rp2836 网卡以及串口与接插件位置关系

    P3     ETH1 P6     ETH0 P7     /dev/ttyS3 调试口 P13-1  /dev/ttyS2  rs485+ P13-2  /dev/ttyS2  rs485- P1 ...