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()); } } }
相关文章推荐
- Java四种引用
- Java多线程实现快速切分文件的程序
- Java修饰符static详解
- [转]Migrating From Eclipse to IntelliJ IDEA
- 使用 aop拦截 springMVC的controller并获取请求参数及返回结果
- (Java)LeetCode-27. Remove Element
- ES2.x版本的javaAPI使用实例
- Java 数据0小数点前无显示
- 汤阳光OA系统记录-----Hibernate实体映射
- [转]IntelliJ IDEA像Eclipse一样打开多个项目
- Spring定时服务QuartZ
- spring整合Ehcache缓存框架
- jre jdk区别
- java线程池实现批处理的简单demo
- 解决Mybatis框架java.sql.SQLException: 数据大小超出此类型的最大值的问题
- (Java)LeetCode-26. Remove Duplicates from Sorted Array
- 13 java.io.*包 和输入、输出类构成。
- java 通过url下载文件到浏览
- 优秀JAVA第三方库
- 关于java的一点成长