Home  >  Article  >  Java  >  Detailed explanation of the usage of enum (enumeration) in java

Detailed explanation of the usage of enum (enumeration) in java

王林
王林forward
2019-11-27 15:49:342692browse

Detailed explanation of the usage of enum (enumeration) in java

Java Enum principle:

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

In fact, the type defined by this declaration is a class, which has exactly four instances. Here Try not to construct new objects.

Therefore, when comparing the values ​​of two enumeration types, you never need to call the equals method, but just use "==" directly. (The equals() method also uses == directly, both have the same effect)

Related video tutorial recommendations: java teaching video

Usage 1: Constants

Before JDK1.5, the constants we defined were: public static fianl..... Well, now with enumerations, related constants can be grouped into an enumeration type, and enumerations provide more methods than constants.

public enum Color {  
  RED, GREEN, BLANK, YELLOW  
}

Usage 2: switch

The switch statement before JDK1.6 only supports int, char, and enum types. Using enumerations can make our code readable. Stronger sex.

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

Usage 3: Add new methods to the enumeration

If you plan to customize your own method, you must add a semicolon at the end of the enum instance sequence. And Java requires that the enum instance must be defined first.

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

Usage 4: Overriding the enumeration method

The following is an example of overriding the toString() method.

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

Usage 5: Implement the interface

All enumerations inherit from the java.lang.Enum class. Since Java does not support multiple inheritance, enumeration objects cannot inherit from other classes.

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

Usage 6: Use interfaces to organize enumerations

public interface Food {
        enum Coffee implements Food {
            BLACK_COFFEE, DECAF_COFFEE, LATTE, CAPPUCCINO
        }

        enum Dessert implements Food {
            FRUIT, CAKE, GELATO
        }
    }

For more related articles and tutorials, please visit: Getting Started with Java

The above is the detailed content of Detailed explanation of the usage of enum (enumeration) in java. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:cnblogs.com. If there is any infringement, please contact admin@php.cn delete