【发布时间】:2011-12-24 03:33:44
【问题描述】:
可能重复:
Why can't enum constructors be protected or public in Java?
下面的代码只是演示了enum 在Java 中的使用。和那个enum的成员的值没有任何关系,只是总结一下。
package enumtest;
enum Sum
{
Pen(10),Pencil(15),Eraser(5);
private int value;
private Sum(int value)
{
this.value=value;
}
public int getValue()
{
return(value);
}
}
final public class Main
{
public static void main(String...args)
{
int sum=0;
for(Sum o:Sum.values())
{
sum+=o.getValue();
}
System.out.println("sum = "+sum);
}
}
它在控制台上显示sum = 30。这里只有一个问题。一般来说,在一个类中,构造函数声明为public,那么为什么enum中的构造函数只能声明为private?其他修饰符 public 和 protected 不允许与它一起使用。即使将其声明为 public 也会导致编译时错误。为什么?
【问题讨论】:
标签: java constructor enums