枚举类里面能有构造器吗
时间: 2023-08-10 11:30:39 浏览: 87
枚举类可以有构造器,但需要注意以下几点:
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方法获取枚举常量值的名称。
阅读全文