枚举类里带值呢
时间: 2023-06-22 11:25:27 浏览: 46
在Java中,枚举类可以带值。例如,假设我们有一个表示星期几的枚举类:
```
public enum DayOfWeek {
MONDAY(1),
TUESDAY(2),
WEDNESDAY(3),
THURSDAY(4),
FRIDAY(5),
SATURDAY(6),
SUNDAY(7);
private final int value;
private DayOfWeek(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
```
在这个例子中,枚举类DayOfWeek表示星期几,每个枚举常量都有一个对应的值。例如,MONDAY的值为1,TUESDAY的值为2,以此类推。
要访问枚举常量的值,可以使用枚举类中定义的getValue()方法。例如,可以通过以下方式获取MONDAY的值:
```
int value = DayOfWeek.MONDAY.getValue(); // value的值为1
```
这样,枚举类就可以带有自定义的值了。
相关问题
java获取枚举类所有值
可以使用Map的values()方法获取所有的value值,返回一个Collection集合,然后可以通过遍历集合来获取每一个value值。示例代码如下:
```
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
Collection<Integer> values = map.values();
for (Integer value : values) {
System.out.println(value);
}
```
枚举类里面能有构造器吗
枚举类可以有构造器,但需要注意以下几点:
1. 构造器必须是私有的:因为枚举类的常量值是固定的,不允许在运行时创建新的常量值,因此构造器只能在枚举类内部使用。
2. 构造器不能使用public或protected修饰符:因为枚举类的构造器只能在枚举类内部使用,而枚举类的常量值只能在枚举类外部使用,所以构造器不能使用public或protected修饰符。
3. 枚举常量值必须在枚举类的第一行列出,并以分号结尾:因为在枚举类加载时,枚举常量值会被创建,而构造器会被调用,因此必须保证枚举常量值在构造器之前被创建。
下面是一个带有构造器的枚举类的例子:
```
public enum Color {
RED("红色"), GREEN("绿色"), BLUE("蓝色");
private String name;
private Color(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
```
在上面的例子中,Color枚举类有一个私有的构造器,用于为每个枚举常量值设置名称。枚举常量值必须在第一行列出,并以分号结尾,每个枚举常量值都会调用构造器并设置名称。可以通过getName方法获取枚举常量值的名称。