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时间日期格式化的几种方法(案例说明); ...