java中enum(枚举)的用法详解

互联网 19-11-27

Java Enum原理:

public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE };

实际上,这个声明定义的类型是一个类,它刚好有四个实例,在此尽量不要构造新对象。

因此,在比较两个枚举类型的值时,永远不需要调用equals方法,而直接使用"=="就可以了。(equals()方法也是直接使用==, 两者是一样的效果)

相关视频教程推荐:java教学视频

用法一:常量

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

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;     }     }

用法四:覆盖枚举的方法

下面给出一个toString()方法覆盖的例子。

public class Test {     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;         }          // 覆盖方法         @Override         public String toString() {             return this.index + "_" + this.name;         }     }      public static void main(String[] args) {         System.out.println(Color.RED.toString());     } }

用法五:实现接口

所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。

public interface Behaviour {     void print();      String getInfo();     }      public enum Color implements Behaviour {     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;     }      // 接口方法      @Override     public String getInfo() {         return this.name;     }      // 接口方法     @Override     public void print() {         System.out.println(this.index + ":" + this.name);     }     }

用法六:使用接口组织枚举

public interface Food {         enum Coffee implements Food {             BLACK_COFFEE, DECAF_COFFEE, LATTE, CAPPUCCINO         }          enum Dessert implements Food {             FRUIT, CAKE, GELATO         }     }

更多相关文章教程请访问:java入门

以上就是java中enum(枚举)的用法详解的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 用法
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:phpMyAdmin 安装步骤

相关资讯