Java枚举常见7种用法

发表于:2011-10-11 10:02

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:ol_beta    来源:51Testing软件测试网采编

#
java
分享:

  DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。

  用法一:常量

  在JDK1.5 之前,我们定义常量都是: publicstaticfianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

  • public enum Color {  
  •   RED, GREEN, BLANK, YELLOW  
  • }
  •   用法二:switch

      JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。

  • enum Signal {  
  •     GREEN, YELLOW, RED  
  • }  
  • public class TrafficLight {  
  •     Signal color = Signal.RED;  
  •     public void change() {  
  •         switch (color) {  
  •         case RED:  
  •             color = Signal.GREEN;  
  •             break;  
  •         case YELLOW:  
  •             color = Signal.RED;  
  •             break;  
  •         case GREEN:  
  •             color = Signal.YELLOW;  
  •             break;  
  •         }  
  •     }  
  • }
  •   用法三:向枚举中添加新方法

      如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。

  • public enum Color {  
  •     RED("红色"1), GREEN("绿色"2), BLANK("白色"3), YELLO("黄色"4);  
  •     // 成员变量  
  •     private String name;  
  •     private int index;  
  •     // 构造方法  
  •     private Color(String name, int index) {  
  •         this.name = name;  
  •         this.index = index;  
  •     }  
  •     // 普通方法  
  •     public static String getName(int index) {  
  •         for (Color c : Color.values()) {  
  •             if (c.getIndex() == index) {  
  •                 return c.name;  
  •             }  
  •         }  
  •         return null;  
  •     }  
  •     // get set 方法  
  •     public String getName() {  
  •         return name;  
  •     }  
  •     public void setName(String name) {  
  •         this.name = name;  
  •     }  
  •     public int getIndex() {  
  •         return index;  
  •     }  
  •     public void setIndex(int index) {  
  •         this.index = index;  
  •     }  
  • }
  • 21/212>
    100家互联网大公司java笔试题汇总,填问卷领取~

    关注51Testing

    联系我们

    快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

    法律顾问:上海兰迪律师事务所 项棋律师
    版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
    投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

    沪ICP备05003035号

    沪公网安备 31010102002173号