import java.util.Calendar; /** *最简普通枚举 * @author Walter.Huang * @create date 2014-12-18 */ enum WEEKEND{ SATURDAY,SUNDAY; } /** * 带有静态方法的的枚举 * * @author Walter.Huang * @create date 2014-12-18 */ enum Season { SPRING, SUMMER, AUTUMN, WINTER;// 定义四季 /** * 枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性或方法 * @param month * @return Season * @author Walter.Huang * @update date 2014-12-18 */ public static Season getSeason(int month) { if (month >= 2 && month <= 4) return SPRING; if (month >= 5 && month <= 7) return SUMMER; if (month >= 8 && month <= 10) return AUTUMN; return WINTER; } } /** * 实现带有构造器的枚举 * @author Walter.Huang * @create date 2014-12-18 */ enum Authority { LIST_ARTICLE("admin/article/list.do", 1), UPDATE_ARTICLE("admin/article/update.do", 2), DELETE_ARTICLE("admin/article/delete.do", 3); Authority(String uri, int code) { setUri(uri); setCode(code); } /** * 根据uri获取权限 * @param srcUri * @return Authority * @author Walter.Huang * @update date 2014-12-18 */ public static Authority getAuthority(String srcUri){ for(Authority authority: Authority.values()){ if(srcUri.indexOf(authority.getUri())>0){ return authority; } } return null; } private String uri; private int code; public String getUri() { return uri; } public void setUri(String uri) { this.uri = uri; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } } /** * 实现带有抽象方法的枚举 * @author Walter.Huang * @create date 2014-12-18 */ enum OrderState { CANCEL {//取消 public String getName(){return "已取消";} public int getStatus(){return -1;} }, WAITCONFIRM {//待审核 public String getName(){return "待审核";} public int getStatus(){return 0;} }, WAITPAYMENT {//等待付款 public String getName(){return "等待付款";} public int getStatus(){return 1;} }, ADMEASUREPRODUCT {//正在配货 public String getName(){return "正在配货";} public int getStatus(){return 2;} }, WAITDELIVER {//等待发货 public String getName(){return "等待发货";} public int getStatus(){return 3;} }, DELIVERED {//已发货 public String getName(){return "已发货";} public int getStatus(){return 4;} }, RECEIVED {//已收货 public String getName(){return "已收货";} public int getStatus(){return 5;} }; public abstract String getName(); public abstract int getStatus(); /** * 根据状态码获取订单状态 * @param status * @return OrderState * @author Walter.Huang * @update date 2014-12-18 */ public static OrderState getOrderStateByStatus(int status){ for(OrderState orderState:OrderState.values()){ if(orderState.getStatus()==status){ return orderState; } } return null; } /** * 根据状态码获取订单状态名 * @param status * @return String * @author Walter.Huang * @update date 2014-12-18 */ public static String getNameByStatus(int status){ for(OrderState orderState:OrderState.values()){ if(orderState.getStatus()==status){ return orderState.getName(); } } return ""; } } /** *测试类 * @author Walter.Huang * @create date 2014-12-18 */ public class AllEnum { public static void main(String[] args) { /*简单的枚举类一般常用witch...case语句做判断*/ WEEKEND aday=WEEKEND.SATURDAY; switch(aday){ case SATURDAY: System.out.println("今天是周六,可以睡懒觉!"); break; case SUNDAY: System.out.println("今天是周日,可以去爬山!"); break; default: System.out.println("今天要工作,一起加油哦!"); } /****************/ /*根据月份获取当前的季节*/ Calendar calendar = Calendar.getInstance(); int month=calendar.get(Calendar.MONTH)+1;//获取当前是年中的第几月 Season aSeason=Season.getSeason(month); switch(aSeason){ case SPRING: System.out.println(month+"月,春天,希望!"); break; case SUMMER: System.out.println(month+"月,夏天,热情!"); break; case AUTUMN: System.out.println(month+"月,秋天,收获!"); break; case WINTER: System.out.println(month+"月,冬天,积蓄!"); break; } /****************/ /*根据根据拦截的uri获取权限的代码*/ String requestUri="http://www.walter.com/admin/article/update.do?flag=100"; Authority authority = Authority.getAuthority(requestUri); if(authority!=null){ System.out.println("权限uri规则是:"+authority.getUri()+" 权限的代码是:"+authority.getCode()); }else{ System.out.println("改uri没有添加加权限的控制,允许直接访问"); } /****************/ /*订单状态枚举方式描述*/ OrderState orderState=OrderState.RECEIVED; System.out.println("订单状态是:"+orderState.getName()+" 状态代码是:"+orderState.getStatus()); int status = 2; orderState=OrderState.getOrderStateByStatus(status); if(orderState!=null){ System.out.println("状态代码是"+status+"的订单状态是:"+orderState.getName()); }else{ System.out.println("订单状态不存在"); } /****************/ } }
运行结果:
今天是周六,可以睡懒觉!
12月,冬天,积蓄!
权限uri规则是:admin/article/update.do 权限的代码是:2
订单状态是:已收货 状态代码是:5
状态代码是2的订单状态是:正在配货
相关推荐
JAVA枚举类型的用法详解 例举了JAVA 枚举类型常见用法
Java源码查看枚举类型定义.rarJava程序设计经典300例
Java1.5提供了关键字enum,能够通过该关键字方便得定义自己须要的枚举类型,比方 enum Season { SPRING, SUMMER, AUTUMN, WINTER } 定义了一个季节枚举类型。 在本例中,对于Season.SPRING这个...
Java经典编程300例》内容包括java语言概述、eclipse开发工具、java语言基础、流程控制、数组及其常用操作、面向对象入门、面向对象进阶、字符串与包装类、java集合类框架、常用数学工具类、错误处理、输入/输出、...
枚举类型与泛型、 swing入门、 多线程、 网络通信和数据库操作。 本书所精选的实例都是一线开发人员在实际项目中所积累的,并进行了技术上的解析,给出了详细的实现过程。读者通过对本书的学习,能够提高开发的能力...
Java经典编程300例》内容包括java语言概述、eclipse开发工具、java语言基础、流程控制、数组及其常用操作、面向对象入门、面向对象进阶、字符串与包装类、java集合类框架、常用数学工具类、错误处理、输入/输出、...
#### 例设计模式的类型 根据实例化对象的时机单例设计模式又分为以下两种: 1. 饿汉单例设计模式 2. 懒汉单例设计模式 多例设计模式案例演示 #### 多例设计模式的作用 多例模式,是一种常用的软件设计模式。通过多...
主要介绍了Java5 枚举类详解及实例代码的相关资料,枚举类是java5 新类型,全部都是类型安全的形式表示,需要的朋友可以参考下
学习Java 了解有关JAVA for ME的信息! 指数 进阶主题 :ArrayList的差异之间的VS矢量 :可比较与比较器之间的区别 ...ThreadStatesEnum.java :枚举类型정리및枚举类型 JavaEnumExample.java :
学生提问:构造器是创建Java对象的途径,是不是说构造器完全负责创建Java对象? 141 5.5.2 构造器的重载 142 学生提问:为什么要用this来调用另一个重载的构造器?我把另一个构造器里的代码复制、粘贴到这个构造器...
实例176 枚举类型的基本特性 225 实例177 增加枚举元素的信息 226 实例178 选择合适的枚举元素 227 实例179 高效的枚举元素集合 228 实例180 高效的枚举元素映射 229 实例181 遍历枚举接口的元素 230 实例182 简单的...
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byte...
例: import java.io.InputStreamReader; import java.io.BufferedReader; class n{ public static void main(String[] args){ System.out.println("请输入一列文字,包括空格:"); BufferedReader s = new ...
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型 封装类 boolean Boolean char Character ...
4、有枚举类型 5、代理和索引器 6、运算符重载 7、没有throws关键字 下面开始C#之行。 在开始学习C#之前,先了解下C#语句的特点: 1. C#是区别大小。2. 每一句都以分号结束,不象VB.NET。3. 多个语句通过...
如下,我们来定义Week的枚举: 代码如下:if(typeof WeekDay == “undefined”){ var WeekDay = {}; WeekDay.Sunday = 0; WeekDay.Monday = 1; WeekDay.Tuesday = 2;...以定义DOM文档节点类型为例,定