Java Enum 变量定义
概述
在Java中,Enum(枚举)是一种特殊的数据类型,它允许我们定义一个有限的、预定义的一组值。通过使用Enum,我们可以更好地组织和管理代码,使代码更加可读、可维护。本文将介绍Java Enum的定义方式,并通过代码示例详细讲解。
Enum 变量定义
在Java中,我们可以使用关键字enum
来定义一个Enum类型。以下是定义一个简单的Enum的示例:
public enum Weekday {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
上面的代码定义了一个名为Weekday
的Enum类型,其中包含了一周的所有工作日和周末。
在定义Enum时,每个Enum值都是一个常量对象,它们默认是按照声明的顺序从0开始进行编号的。在上面的示例中,MONDAY
是第一个Enum值,它的编号为0,TUESDAY
是第二个Enum值,它的编号为1,以此类推。
我们可以通过Enum值的名称来引用它们,就像引用普通的静态常量一样。例如,我们可以使用Weekday.MONDAY
来引用MONDAY
这个Enum值。
Enum类型的变量只能取Enum值中的一个,不能取其他值。例如,我们不能将一个字符串赋值给一个Enum类型的变量,这样会导致编译错误。
Enum 值的属性和方法
在Enum中,我们可以为每个Enum值定义属性和方法。以下是一个带有属性和方法的Enum的示例:
public enum Weekday {
MONDAY("星期一", 1),
TUESDAY("星期二", 2),
WEDNESDAY("星期三", 3),
THURSDAY("星期四", 4),
FRIDAY("星期五", 5),
SATURDAY("星期六", 6),
SUNDAY("星期日", 7);
private String name;
private int value;
Weekday(String name, int value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public int getValue() {
return value;
}
@Override
public String toString() {
return name;
}
}
上面的代码定义了一个具有name
和value
属性以及getName()
和getValue()
方法的Enum类型。每个Enum值都有自己独立的属性和方法。
在Enum类型中,我们可以像调用普通对象的方法一样调用Enum值的方法。例如,我们可以使用Weekday.MONDAY.getName()
来获取MONDAY
的名称。
Enum 的使用示例
下面我们通过一个例子来演示如何在实际中使用Enum。
假设我们正在开发一个汽车租赁系统,我们需要定义汽车的类型。我们可以使用Enum来定义汽车类型,并为每个类型指定名称和日租金。以下是一个示例:
public enum CarType {
SEDAN("轿车", 200),
SUV("SUV", 300),
VAN("面包车", 400);
private String name;
private int dailyRent;
CarType(String name, int dailyRent) {
this.name = name;
this.dailyRent = dailyRent;
}
public String getName() {
return name;
}
public int getDailyRent() {
return dailyRent;
}
}
在上面的代码中,我们定义了三种汽车类型:SEDAN
(轿车),SUV
(SUV),VAN
(面包车),并为每种类型指定了名称和日租金。
在我们的汽车租赁系统中,我们可以使用CarType
来指定租赁的汽车类型。例如,我们可以定义一个Car
类,其中有一个CarType
类型的属性:
public class Car {
private String brand;
private CarType type;
public Car(String brand, CarType type) {
this.brand = brand;
this.type = type;
}
public String getBrand() {
return brand;
}
public CarType getType() {
return type;
}
}
在上面的代码中,我们定义了一个`Car