【问题标题】:Should enum constructor be marked as private? [duplicate]枚举构造函数是否应该标记为私有? [复制]
【发布时间】:2023-04-04 18:43:01
【问题描述】:

我准备通过书阅读来参加 scjp 考试。

书名:

A constructor in an enum class can only be specified as private.

但我写了测试代码:

enum En{
    VAL_1;
    En(){
        System.out.println("123");
    }
    public static void main(String [] args){
    }
}

此代码对我有用。

是书籍错误还是编译器错误?

附:带有受保护和公共访问修饰符的代码不起作用

【问题讨论】:

  • enum 对象由enum 自己创建。您不能从外部创建它的对象,因此如果构造函数不是private,则更改可见性没有任何意义。你可以改变它,但它没有任何意义,但publicprotected是不允许的。
  • @Braj 为什么对于包可见和受保护使用差异政治?
  • @Katona 很有趣 - 谢谢

标签: java constructor enums


【解决方案1】:

在文档中声明枚举构造函数必须是包私有或私有的。

Enum tutorial

【讨论】:

  • 如果枚举类型的构造函数没有指定访问修饰符,则构造函数是私有的请添加回答
猜你喜欢
  • 2016-07-17
  • 2011-10-30
  • 2019-10-06
  • 2011-12-06
  • 2012-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多