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 枚举常量本身就是该类 ...
随机推荐
- 分别用C和C++来实现一个链栈
下面通过分别用C和C++来实现一个链栈(链表实现),从中体会数据封装抽象的思想: C语言实现: C++ Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- Python根据系统环境配置日志,Python配置日志 Python logger
我们通常在写爬虫的时候,需要配置日志,但是有可能是在windows开发的,但是程序的运行环境可是是在Linux中,这时候我们就需要不停的更换日志的目录了 但是我们可以实现通过判断不同的运行环境,来时间 ...
- python __path__ 变量
今天在读django源码的时候遇到了一个问题!它就是__path__这个系统变量 一.__path__变更初见: 由__path__这个变量的名字就知道,这个是一个系统变量,不是用户自定义的变量,于是 ...
- Hadoop-2.2.0中文文档—— Shell命令
FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args>的形式. 全部的的FS shell命令使用URI路径作为參数.URI格式是scheme: ...
- vim中不同模式的帮助信息的查找
vim的模式有多种,比如normal(普通模式),insert(插入模式),command(命令行模式),visual(可视化模式).相同的命令和快捷键在不同的模式下功能是不一样的,因此帮助信息也是分 ...
- Linux硬盘速度测试的命令
测试下硬盘的读写速度如何,在linux下可以使用hdparm 对硬盘进行测试或查看硬盘的相关信息. hdparm 命令进行硬盘速度测试.参数: -a 表示是否关闭磁盘预读取功能.对于大文件读取,这个显 ...
- CWidgetMgr---H
/************************************************************************/ //管理部件 //部件自动根据Z顺序调整消息的优先 ...
- session退出页面
简单的session退出页面,jsp: <%@ page language="java" contentType="text/html; charset=utf-8 ...
- cocos2d-x聊天气泡
用cocos2d-x做聊天气泡在网上搜索了一下提示用CCScale9Sprite,这个类可以不缩放边角只 缩放中心,正好符合气泡的要求. 说一下思路,头像都是用cocosbuilder做的ccb,在代 ...
- rp2836 网卡以及串口与接插件位置关系
P3 ETH1 P6 ETH0 P7 /dev/ttyS3 调试口 P13-1 /dev/ttyS2 rs485+ P13-2 /dev/ttyS2 rs485- P1 ...