java enum 和 class
时间: 2024-06-12 15:10:46 浏览: 169
Java中的enum和class都是用来定义类的,但是它们有一些不同之处。enum是一种特殊的类,它可以定义一组常量,这些常量可以作为枚举类型的值使用。而class则是一种普通的类,可以定义属性、方法等。
在使用上,enum常用于定义一组有限的常量,比如颜色、星期几等。而class则用于定义更复杂的数据类型,比如人、动物等。
另外,enum还有一些特殊的方法和语法,比如values()方法可以返回枚举类型的所有值,而switch语句也可以用于枚举类型。
相关问题
java enum class_JAVA 枚举类型
Java中的枚举类型是一种特殊的数据类型,它允许我们定义一个有限的、固定的值集合。枚举类型可以用来表示一组相关的常量,比如颜色、星期几等等。在Java中,枚举类型使用关键字enum来定义。
下面是一个简单的例子:
```
public enum Weekday {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
```
在这个例子中,我们定义了一个Weekday枚举类型,它包含了一周的七天。每个枚举常量都是Weekday类型的一个实例,可以像下面这样使用:
```
Weekday today = Weekday.MONDAY;
if (today == Weekday.MONDAY) {
System.out.println("今天是星期一");
}
```
枚举类型还可以添加属性和方法,例如:
```
public enum Weekday {
MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY("星期三"), THURSDAY("星期四"), FRIDAY("星期五"), SATURDAY("星期六"), SUNDAY("星期日");
private String chineseName;
private Weekday(String chineseName) {
this.chineseName = chineseName;
}
public String getChineseName() {
return chineseName;
}
}
```
在这个例子中,我们给每个枚举常量添加了一个中文名称,同时定义了一个getChineseName()方法来获取中文名称。使用方式如下:
```
Weekday today = Weekday.MONDAY;
System.out.println("今天是" + today.getChineseName());
```
枚举类型在Java中广泛应用,可以帮助我们更好地组织代码,并提高代码的可读性和可维护性。
Java Enum 与 Enum 关联
Java Enum 也可以和另一个 Enum 关联起来,这种情况下可以使用 EnumMap 或者 EnumSet。
1. EnumMap
EnumMap 是一种特殊的 Map,它的 key 必须是 Enum 类型。可以用来将一个 Enum 和另一个 Enum 关联起来,例如:
```java
public enum Weekday {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public enum Weather {
SUNNY, RAINY, CLOUDY, SNOWY
}
public class Example {
private static final Map<Weekday, Weather> weatherMap = new EnumMap<>(Weekday.class);
static {
weatherMap.put(Weekday.MONDAY, Weather.SUNNY);
weatherMap.put(Weekday.TUESDAY, Weather.CLOUDY);
weatherMap.put(Weekday.WEDNESDAY, Weather.RAINY);
weatherMap.put(Weekday.THURSDAY, Weather.SUNNY);
weatherMap.put(Weekday.FRIDAY, Weather.SNOWY);
weatherMap.put(Weekday.SATURDAY, Weather.CLOUDY);
weatherMap.put(Weekday.SUNDAY, Weather.RAINY);
}
public static void main(String[] args) {
System.out.println(weatherMap.get(Weekday.MONDAY)); // SUNNY
}
}
```
在上面的例子中,我们使用 EnumMap 将 Weekday 枚举和 Weather 枚举关联起来。
2. EnumSet
EnumSet 是一种特殊的 Set,它的元素必须是 Enum 类型。可以用来将一个 Enum 和另一个 Enum 关联起来,例如:
```java
public enum Weekday {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public enum Weekend {
SATURDAY, SUNDAY
}
public class Example {
private static final Set<Weekday> weekdays = EnumSet.of(
Weekday.MONDAY, Weekday.TUESDAY, Weekday.WEDNESDAY,
Weekday.THURSDAY, Weekday.FRIDAY
);
public static void main(String[] args) {
System.out.println(weekdays.contains(Weekday.MONDAY)); // true
System.out.println(weekdays.contains(Weekday.SATURDAY)); // false
}
}
```
在上面的例子中,我们使用 EnumSet 将 Weekday 枚举和 Weekend 枚举关联起来,将工作日和周末分别加入不同的 EnumSet 中。
阅读全文