gpt4 book ai didi

java - 为什么 Java 枚举中的构造函数只能声明为私有(private)的?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:59:40 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Why can't enum constructors be protected or public in Java?

下面的代码只是演示了enum在Java中的使用。它与 enum 的成员的值无关,只是总结了该 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呢?不允许使用其他修饰符 publicprotected。即使将其声明为 public 也会导致编译时错误。为什么?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com