簡體   English   中英

Java 枚舉構造函數

[英]Java enum constructors

聲明在這里

有一條語句“可以在枚舉之外調用枚舉構造函數。” 在 JAVA SE:編程完成課程。 我知道枚舉構造函數可以具有私有或默認訪問修飾符。 當它是私有的時,我們無法訪問枚舉之外的枚舉構造函數。 當枚舉具有默認訪問修飾符時,我們可以在枚舉之外訪問枚舉構造函數。 但是我找不到任何關於如何訪問枚舉之外的枚舉構造函數的示例。 你能舉個例子嗎?

語言規范

如果枚舉聲明中的構造函數聲明是公共的或受保護的(第 6.6 節),則會出現編譯時錯誤。

...

在枚舉聲明中,沒有訪問修飾符的構造函數聲明是私有的。

因此,枚舉構造函數始終是私有的:您不能在枚舉本身之外調用枚舉構造函數; 並且您只能通過this(...)作為枚舉構造函數之一的第一條語句調用另一個構造函數,而不是new MyEnumType(...)

來自 Java 文檔:

https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

枚舉類型的構造函數必須是包私有或私有訪問。 它會自動創建在枚舉體開頭定義的常量。 您不能自己調用枚舉構造函數

包私有意味着沒有訪問修飾符,但在這種情況下,枚舉構造函數隱式仍然只有私有訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM