java 枚举使用详解
在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。
例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。
在java中如何更好的使用这些“数据集”呢?因此枚举便派上了用场,以下代码详细介绍了枚举的用法。
package com.ljq.test; /**
* 枚举用法详解
*
* @author jiqinlin
*
*/
public class TestEnum {
/**
* 普通枚举
*
* @author jiqinlin
*
*/
public enum ColorEnum {
red, green, yellow, blue;
} /**
* 枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性或方法
*
* @author jiqinlin
*
*/
public enum SeasonEnum {
//注:枚举写在最前面,否则编译出错
spring, summer, autumn, winter; private final static String position = "test"; public static SeasonEnum getSeason() {
if ("test".equals(position))
return spring;
else
return winter;
}
} /**
* 性别
*
* 实现带有构造器的枚举
*
* @author jiqinlin
*
*/
public enum Gender{
//通过括号赋值,而且必须带有一个参构造器和一个属性跟方法,否则编译出错
//赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值;如果不赋值则不能写构造器,赋值编译也出错
MAN("MAN"), WOMEN("WOMEN"); private final String value; //构造器默认也只能是private, 从而保证构造函数只能在内部使用
Gender(String value) {
this.value = value;
} public String getValue() {
return value;
}
} /**
* 订单状态
*
* 实现带有抽象方法的枚举
*
* @author jiqinlin
*
*/
public enum OrderState {
/** 已取消 */
CANCEL {public String getName(){return "已取消";}},
/** 待审核 */
WAITCONFIRM {public String getName(){return "待审核";}},
/** 等待付款 */
WAITPAYMENT {public String getName(){return "等待付款";}},
/** 正在配货 */
ADMEASUREPRODUCT {public String getName(){return "正在配货";}},
/** 等待发货 */
WAITDELIVER {public String getName(){return "等待发货";}},
/** 已发货 */
DELIVERED {public String getName(){return "已发货";}},
/** 已收货 */
RECEIVED {public String getName(){return "已收货";}}; public abstract String getName();
} public static void main(String[] args) {
//枚举是一种类型,用于定义变量,以限制变量的赋值;赋值时通过“枚举名.值”取得枚举中的值
ColorEnum colorEnum = ColorEnum.blue;
switch (colorEnum) {
case red:
System.out.println("color is red");
break;
case green:
System.out.println("color is green");
break;
case yellow:
System.out.println("color is yellow");
break;
case blue:
System.out.println("color is blue");
break;
} //遍历枚举
System.out.println("遍历ColorEnum枚举中的值");
for(ColorEnum color : ColorEnum.values()){
System.out.println(color);
} //获取枚举的个数
System.out.println("ColorEnum枚举中的值有"+ColorEnum.values().length+"个"); //获取枚举的索引位置,默认从0开始
System.out.println(ColorEnum.red.ordinal());//
System.out.println(ColorEnum.green.ordinal());//
System.out.println(ColorEnum.yellow.ordinal());//
System.out.println(ColorEnum.blue.ordinal());//3 //枚举默认实现了java.lang.Comparable接口
System.out.println(ColorEnum.red.compareTo(ColorEnum.green));//-1 //--------------------------
System.out.println("===========");
System.err.println("季节为" + SeasonEnum.getSeason()); //--------------
System.out.println("===========");
for(Gender gender : Gender.values()){
System.out.println(gender.value);
} //--------------
System.out.println("===========");
for(OrderState order : OrderState.values()){
System.out.println(order.getName());
}
} }
本文转自:http://www.cnblogs.com/linjiqin/archive/2011/02/11/1951632.html
java 枚举使用详解的更多相关文章
- Java 枚举(enum) 详解7种常见的用法
Java 枚举(enum) 详解7种常见的用法 来源 https://blog.csdn.net/qq_27093465/article/details/52180865 JDK1.5引入了新的类型— ...
- java枚举使用详解,整理的很好,只能收下。。。
java枚举使用详解 在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素 ...
- java枚举使用详解
在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集” ...
- java枚举使用详解(转)
在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的"数 ...
- Java 枚举类详解
1. 枚举类定义 在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象,这种实例有限而且固定的类,在Java里被称为枚举类. 2. 早期实现枚举的方式 public static f ...
- Java 枚举用法详解
概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性. 在Java中,被 enum 关键字修饰的类型就是枚举类型.形式如下: enum Color { RED, GR ...
- java枚举类型详解
枚举类型是JDK1.5的新特性.显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类.而这些类都是类库中Enum类的子类(java.lang.Enum<E>).它 ...
- Java 枚举(enum) 详解4种常见的用法
JDK1.5引入了新的类型——枚举.在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便. 大师兄我又加上自己的理解,来帮助各位理解一下. 用法一:常量 在JDK1.5 之前,我们定义常 ...
- Java 枚举类 详解
1.枚举是什么? Java中的枚举其实是一种语法糖,在 JDK 1.5之后出现,用来表示固定且有限个的对象.比如一个季节类有春.夏.秋.冬四个对象:一个星期有星期一到星期日七个对象.这些明显都是固定的 ...
随机推荐
- Objective-c单例模式详解
转载自:http://www.jianshu.com/p/85618bcd4fee 单例模式出现以后,关于它的争执就一直存在.在开发项目中,有很多时候我们需要一个全局的对象,而且要保证全局有且仅有一份 ...
- win7音量控制图标不见了怎么办啦?
1.打开程序管理器(ctrl+alt+delete)2.在进程那里找到"explorer.exe",然后按结束进程(此时工具栏会消失)3.然后在文件(程序管理器左上角),点击&qu ...
- java web-----DAO设计模式(数据库访问)
一,DAO设计模式用于 j2ee 的数据层访问,包括五部分, 数据库连接类(包含数据库的连接与关闭操作的一个类), VO类(私有变量与数据库表格对应,接收数据库中表格各字段内容), DAO接口类(包含 ...
- 10.20_web编辑器复制粘贴图片
(1) http://q.cnblogs.com/q/19865/ (2) http://www.oschina.net/search?scope=project&q=FreeTextBox
- 九度OJ 1435 迷瘴
题目地址:http://ac.jobdu.com/problem.php?pid=1435 题目描述: 通过悬崖的yifenfei,又面临着幽谷的考验—— 幽谷周围瘴气弥漫,静的可怕,隐约可见地上堆满 ...
- python的一个表达式的计算(超简单)
运行的过程如下: 输入计算表达式:3+5 计算结果:8 然后再次显示计算表达式,等待输入完成后,再次显示结果,依此循环. 作为初学者再适合不过,代码也简单,如下所示: #!/usr/bin/env ...
- linux ptheard 生产者消费者
; { { printf( pthread_mutex_lock(&mutex); != g_iBufSiz ...
- jQuery弹出层_点击自身以外地方关闭弹出层
<html> <style> .hide{display:none;} </style> <script type="text/javascript ...
- jquery ajax 的data 存表单的值
jsp <body> <form action="" method="post" id="formid"> < ...
- @using (Html.BeginForm())收集
一 ,制定表单提交方式和路径 1,指明(视图,控制器,提交方式,参数) <%using(Html.BeginForm("Index","Home",For ...