📅  最后修改于: 2023-12-03 15:16:19.238000             🧑  作者: Mango
枚举(Enum)是一种特殊的数据类型,它限制了变量的值只能在固定的一组值中选择。在Java中,枚举类型是通过enum
关键字定义的。下面是一个例子:
enum Fruit {
APPLE,
ORANGE,
BANANA
}
这个定义了一个名为Fruit
的枚举类型,它有三个枚举常量:APPLE
、ORANGE
和BANANA
。每个枚举常量都是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
的枚举类型,它有三个枚举常量:APPLE
、ORANGE
和BANANA
。每个枚举常量都有两个属性:color
和weight
,以及两个方法: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
语句是一种类似于多重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;
}
这个代码输出的结果与上面的例子相同。