• Java枚举7常见种用法


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

    方法/步骤

    1.   用法一:常量

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

        Java代码

        public enum Color {

        RED, GREEN, BLANK, YELLOW

        }

    2.   用法二:switch

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

        Java代码

        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;

        }

        }

        }

    3.   用法三:向枚举中添加新方法

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

        Java代码

        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;

        }

        }

    4.   用法四:覆盖枚举的方法

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

        Java代码

        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;

        }

        }

    5.   用法五:实现接口

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

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

        }

        }

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

        Java代码

        public interface Food {

        enum Coffee implements Food{

        BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO

        }

        enum Dessert implements Food{

        FRUIT, CAKE, GELATO

        }

        }

    7. 7

        用法七:关于枚举集合的使用

        java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。

  • 相关阅读:
    数据结结构学习 赫夫曼树
    C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
    Linux/Unix time时间戳的处理转换函数
    gcc中include文件的搜索路径
    数据结结构学习 2叉树
    C++ 虚函数表解析
    数据结结构学习 线性表
    C#实现MD5加密
    学习的艺术
    C# 3.0实现类本身的方法扩展
  • 原文地址:https://www.cnblogs.com/liuzy2014/p/4209417.html
Copyright © 2020-2023  润新知