您的位置:首页 > 编程语言 > Java开发

JAVA枚举详解

2016-06-08 15:19 471 查看
/**
*
* @author chenqian
* @date   2016年5月26日
* @TestEnum.java
* 枚举用法详解
*/
public class TestEnum {

/**
* 普通枚举
* @author chenqian
* @date   2016年5月26日
* @ColorEnum.java
*/
public enum ColorEnum{
red,green,yellow,blue;
}

/**
* 季节的枚举类
* 枚举像普通类一样可以添加属性和方法
* @author chenqian
* @date   2016年5月26日
* @SeasionEnum.java
*/
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 chenqian
* @date   2016年5月26日
* @Gender.java
*/
public enum Gender{
MAN("MAN"),WOMAN("WOMEN");

private final String value;
Gender(String value){
this.value=value;
}

public String getValue() {
return value;
}
}

/**
* 订单状态
*
* 实现带有抽象方法的枚举
*
* @author jiqinlin
*
*/
public enum OrderState {
/** 已取消 */
CANCEL {
@Override
public String getName() {
// TODO Auto-generated method stub
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());//0
System.out.println(ColorEnum.green.ordinal());//1
System.out.println(ColorEnum.yellow.ordinal());//2
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());
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: