📜  Java中 Enum 和 Switch 关键字的使用(1)

📅  最后修改于: 2023-12-03 15:16:19.238000             🧑  作者: Mango

Java中 Enum 和 Switch 关键字的使用

Enum

枚举(Enum)是一种特殊的数据类型,它限制了变量的值只能在固定的一组值中选择。在Java中,枚举类型是通过enum关键字定义的。下面是一个例子:

enum Fruit {
    APPLE,
    ORANGE,
    BANANA
}

这个定义了一个名为Fruit的枚举类型,它有三个枚举常量:APPLEORANGEBANANA。每个枚举常量都是Fruit类型的一个实例。我们可以通过Fruit.APPLE来访问这个实例。枚举常量的名称通常是大写字母。

枚举常量的属性和方法

枚举常量也可以有自己的属性和方法。我们可以像定义类一样在枚举中定义属性和方法。例如:

enum Fruit {
    APPLE("red", 100),
    ORANGE("orange", 80),
    BANANA("yellow", 120);

    private String color;
    private int weight;

    private Fruit(String color, int weight) {
        this.color = color;
        this.weight = weight;
    }

    public String getColor() {
        return color;
    }

    public int getWeight() {
        return weight;
    }
}

这个定义了一个名为Fruit的枚举类型,它有三个枚举常量:APPLEORANGEBANANA。每个枚举常量都有两个属性:colorweight,以及两个方法:getColor()getWeight()。构造方法为private,表示只能在枚举类型内部使用。

枚举常量的比较

枚举常量之间的比较可以用==运算符或equals()方法完成。例如:

Fruit fruit1 = Fruit.APPLE;
Fruit fruit2 = Fruit.APPLE;
if (fruit1 == fruit2) {
    System.out.println("fruit1 == fruit2");
} else if (fruit1.equals(fruit2)) {
    System.out.println("fruit1.equals(fruit2)");
} else {
    System.out.println("not equal");
}

这个代码输出的结果为fruit1 == fruit2

Switch

switch语句是一种类似于多重if语句的语句,它可以根据表达式的值从一组固定的值中选择。switch语句的语法如下:

switch (expression) {
    case value1:
        // statements
        break;
    case value2:
        // statements
        break;
    ...
    default:
        // statements
        break;
}

expression是一个表达式,它的值用于和case后面的值进行比较。case语句的值必须是一个常量表达式,这就意味着它必须是一个字面值或者一个在编译时计算出来的表达式。default语句是可选的,如果所有的case语句都不匹配,就会执行default语句。

下面是一个使用switch语句的例子:

enum Fruit {
    APPLE,
    ORANGE,
    BANANA
}

Fruit fruit = Fruit.APPLE;
switch (fruit) {
    case APPLE:
        System.out.println("It's an apple.");
        break;
    case ORANGE:
        System.out.println("It's an orange.");
        break;
    case BANANA:
        System.out.println("It's a banana.");
        break;
    default:
        System.out.println("Unknown fruit.");
        break;
}

这个代码输出的结果为It's an apple.

在Java SE7中,switch语句可以使用字符串作为表达式,例如:

String fruit = "apple";
switch (fruit) {
    case "apple":
        System.out.println("It's an apple.");
        break;
    case "orange":
        System.out.println("It's an orange.");
        break;
    case "banana":
        System.out.println("It's a banana.");
        break;
    default:
        System.out.println("Unknown fruit.");
        break;
}

这个代码输出的结果与上面的例子相同。