Java 枚举(enum)


Java枚举(enum)技术文档

枚举(Enum)是一种特殊的数据类型,用于声明命名的常量。在Java中,枚举是由关键字enum定义的一种新型数据类型,它可以像类一样拥有属性和方法。在本文中,我们将介绍Java中枚举的概念、用法和示例。

枚举的概念

枚举类型是一种集合类型,使用枚举类型可以定义一组常量,这组常量也被称为枚举常量。在使用枚举类型时,可以通过枚举常量的名称访问它们。枚举常量写在括号内,用逗号分隔。例如:

enum Color {
    RED, GREEN, BLUE;
}

在这个示例中,我们定义了一个颜色枚举类型,其中包含三个枚举常量RED、GREEN和BLUE。

枚举的用法

常规用法

枚举通常用于定义一组相关的常量,比如表示星期几、表示颜色等。枚举类型在使用时可以像普通类型一样使用,例如:

Color color = Color.RED;

这个示例中,我们声明了一个Color类型的变量color,并将其赋值为枚举常量RED。

枚举常量的属性和方法

枚举常量可以拥有自己的属性和方法。例如,为颜色枚举类型添加RGB属性和getColor方法:

enum Color {
    RED(255, 0, 0),
    GREEN(0, 255, 0),
    BLUE(0, 0, 255);

    private int r;
    private int g;
    private int b;

    private Color(int r, int g, int b) {
        this.r = r;
        this.g = g;
        this.b = b;
    }

    public String getColor() {
        return "(" + r + ", " + g + ", " + b + ")";
    }
}

在这个示例中,我们为枚举常量RED、GREEN、BLUE添加了RGB属性,并定义了getColor方法以返回该颜色的RGB值。

switch语句中的枚举

使用枚举类型可以很方便地在switch语句中使用枚举常量。例如:

switch (color) {
    case RED:
        System.out.println("红色");
        break;
    case GREEN:
        System.out.println("绿色");
        break;
    case BLUE:
        System.out.println("蓝色");
        break;
    default:
        System.out.println("未知颜色");
        break;
}

在这个示例中,我们使用了枚举类型Color作为switch语句的判断条件,并对不同的枚举常量进行了不同的处理。

枚举的示例

下面是一个完整的枚举示例,演示了如何定义和使用枚举类型:

import java.util.Scanner;

public class EnumExample {
    enum Weekday {
        MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY("星期三"), THURSDAY("星期四"), FRIDAY("星期五"), SATURDAY("星期六"), SUNDAY("星期日");

        private String chineseName;

        private Weekday(String chineseName) {
            this.chineseName = chineseName;
        }

        public String getChineseName() {
            return chineseName;
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入星期几的英文名称:");
        String input = scanner.next();
        Weekday weekday = Weekday.valueOf(input.toUpperCase());
        System.out.println(weekday.getChineseName());
    }
}

在这个示例中,我们定义了一个周几枚举类型(Weekday),并为每个枚举常量添加了中文名属性。接着,在main方法中读入一个英文星期名称,并将其转换为相应的枚举常量。最后,输出对应的中文名称。

总结

本文介绍了Java中枚举的概念、用法和示例。枚举类型是一种集合类型,用于定义一组常量。使用枚举类型时,可以像普通类型一样使用,并可以为枚举常量添加属性和方法。枚举常量可以在switch语句中使用,方便对不同的枚举常量进行处理。