Appearance
Java枚举
在Java中,枚举(Enumeration的缩写)是一种具有固定常量值集合的类型。我们使用enum
关键字来声明枚举。例如,
java
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
这里,我们创建了一个名为Size的枚举。它包含了固定的值SMALL、MEDIUM、LARGE和EXTRALARGE。
大括号内的这些值被称为枚举常量(values)。
注意: 枚举常量通常用大写表示。
示例1:Java枚举
java
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
class Main {
public static void main(String[] args) {
System.out.println(Size.SMALL);
System.out.println(Size.MEDIUM);
}
}
输出
SMALL
MEDIUM
从上面的示例中可以看到,我们使用枚举名称来访问常量值。
我们还可以创建枚举类型的变量。例如,
java
Size pizzaSize;
这里,pizzaSize是Size类型的变量。它只能被分配4个值。
java
pizzaSize = Size.SMALL;
pizzaSize = Size.MEDIUM;
pizzaSize = Size.LARGE;
pizzaSize = Size.EXTRALARGE;
示例2:带有switch语句的Java枚举
java
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
class Test {
Size pizzaSize;
public Test(Size pizzaSize) {
this.pizzaSize = pizzaSize;
}
public void orderPizza() {
switch(pizzaSize) {
case SMALL:
System.out.println("我点了一个小号比萨。");
break;
case MEDIUM:
System.out.println("我点了一个中号比萨。");
break;
default:
System.out.println("我不知道应该点哪个。");
break;
}
}
}
class Main {
public static void main(String[] args) {
Test t1 = new Test(Size.MEDIUM);
t1.orderPizza();
}
}
输出
我点了一个中号比萨。
在上面的程序中,我们创建了一个Size类型的枚举。然后声明了一个名为pizzaSize的变量,类型为Size。
在这里,变量pizzaSize只能被分配4个值(SMALL、MEDIUM、LARGE、EXTRALARGE)。
注意语句:
java
Test t1 = new Test(Size.MEDIUM);
它将调用Test类内的Test()
构造函数。现在,变量pizzaSize被赋予了MEDIUM常量。
根据这个值,执行了其中一个switch语句的case。
Java中的枚举类
在Java中,枚举类型被视为一种特殊类型的类。它是在Java 5发布时引入的。
枚举类可以像普通类一样包含方法和字段。
java
enum Size {
元素1, 元素2, …, 元素N;
// 方法和字段
}
当我们创建一个枚举类时,编译器会为每个枚举常量创建实例(对象)。此外,所有的枚举常量都是默认的public static final
。
示例3:Java枚举类
java
enum Size{
SMALL, MEDIUM, LARGE, EXTRALARGE;
public String getSize() {
// this将引用对象SMALL
switch(this) {
case SMALL:
return "小号";
case MEDIUM:
return "中号";
case LARGE:
return "大号";
case EXTRALARGE:
return "超大号";
default:
return null;
}
}
public static void main(String[] args) {
// 调用getSize()
// 使用对象SMALL
System.out.println("比萨的尺寸是" + Size.SMALL.getSize());
}
}
输出
比萨的尺