📜  Java枚举(1)

📅  最后修改于: 2023-12-03 14:43:01.603000             🧑  作者: Mango

Java枚举

Java中的枚举类型是指一组具名的常量。它们可以被用来代表那些有限的、特定的、离散的值。Java枚举是自Java 5起引入的。本文将介绍Java枚举的基本用法和一些扩展。

基本用法

Java中的枚举类型被定义为一个类,这个类是final的,并且包含有一组枚举常量。枚举常量的名称大写。

可以用以下方式声明一个枚举类型:

public enum ExampleEnum {
    ENUM_CONSTANT1,
    ENUM_CONSTANT2,
    ENUM_CONSTANT3
}

该枚举类型中定义了三个枚举常量:ENUM_CONSTANT1ENUM_CONSTANT2ENUM_CONSTANT3

使用枚举类型可以很容易地完成比较和赋值操作。例如:

ExampleEnum enum1 = ExampleEnum.ENUM_CONSTANT1;
ExampleEnum enum2 = ExampleEnum.ENUM_CONSTANT2;

if (enum1 == ExampleEnum.ENUM_CONSTANT1) {
    System.out.println("enum1 equals ENUM_CONSTANT1");
}

if (enum2.equals(ExampleEnum.ENUM_CONSTANT2)) {
    System.out.println("enum2 equals ENUM_CONSTANT2");
}

ExampleEnum enum3 = ExampleEnum.valueOf("ENUM_CONSTANT3");
System.out.println(enum3); // 输出:ENUM_CONSTANT3

上述代码演示了枚举常量的比较和赋值操作,以及如何通过名称获取对应的枚举常量。

枚举常量的属性和方法

Java枚举常量可以包含属性和方法。以下是一个包含属性和方法的枚举类型的定义:

public enum ExampleEnum {
    ENUM_CONSTANT1("constant1_parameter"),
    ENUM_CONSTANT2("constant2_parameter"),
    ENUM_CONSTANT3("constant3_parameter");

    private String parameter;

    ExampleEnum(String parameter) {
        this.parameter = parameter;
    }

    public void printParameter() {
        System.out.println(parameter);
    }
}

在上面的枚举类型中,枚举常量包括名称和一个参数,还包含了一个printParameter()方法。

可以通过以下方式调用枚举常量的属性和方法:

ExampleEnum enum1 = ExampleEnum.ENUM_CONSTANT1;
enum1.printParameter(); // 输出:constant1_parameter
枚举常量的实现

Java枚举类型是枚举常量的类,每个枚举常量都是该类的实例。因此,枚举常量可以具有不同的行为方式和属性。

以下是一个包含自定义方法的枚举类型的定义:

public enum ExampleEnum {
    ENUM_CONSTANT1 {
        @Override
        public void customMethod() {
            System.out.println("custom method for ENUM_CONSTANT1");
        }

        @Override
        public String commonMethod() {
            return "ENUM_CONSTANT1";
        }
    },
    ENUM_CONSTANT2 {
        @Override
        public void customMethod() {
            System.out.println("custom method for ENUM_CONSTANT2");
        }

        @Override
        public String commonMethod() {
            return "ENUM_CONSTANT2";
        }
    },
    ENUM_CONSTANT3 {
        @Override
        public void customMethod() {
            System.out.println("custom method for ENUM_CONSTANT3");
        }

        @Override
        public String commonMethod() {
            return "ENUM_CONSTANT3";
        }
    };

    public abstract void customMethod();

    public abstract String commonMethod();
}

上述代码中,每个枚举常量都实现了自定义方法customMethod()和共同的方法commonMethod()

下面演示如何调用枚举常量的自定义方法和共同方法:

ExampleEnum enum1 = ExampleEnum.ENUM_CONSTANT1;
enum1.customMethod(); // 输出:custom method for ENUM_CONSTANT1

ExampleEnum enum2 = ExampleEnum.ENUM_CONSTANT2;
System.out.println(enum2.commonMethod()); // 输出:ENUM_CONSTANT2
总结

本文介绍了Java枚举类型的基本语法和一些扩展。Java枚举类型是一种非常方便的方式来表示一组常量。它们可以用来代表状态、类型、选项等。在实际编程中,应当根据实际需求合理使用枚举类型,以实现程序的可读性、可靠性和可扩展性。