簡體   English   中英

防止創建對象類

[英]Preventing object class creation

我一直在閱讀有關構造函數的文章 ,那里寫的是:

公共類可以通過聲明至少一個構造函數,防止創建具有公共訪問權限的默認構造函數以及不聲明任何公共構造函數來阻止在其包之外創建實例。

我對聲明沒有公共構造函數感到困惑。 這是因為,如果我們根本不聲明任何構造函數,則隱式聲明的默認構造函數將使用該類的訪問修飾符隱式聲明。 這意味着,如果將該類聲明為public,則默認構造函數也將是public。 那就是我們可以在包外使用它(在包外創建實例)。

您錯過了這一點:

通過聲明至少一個構造函數

這就是阻止創建默認構造函數的原因。

給出的示例具有默認訪問(包訪問)構造函數:

PackageOnly() { }

...因此滿足兩個條件:a)聲明至少一個構造函數; b)它聲明沒有公共構造函數。

不可以,該類可以公開,但是構造函數只能針對包訪問protected ,也可以是private -主要與工廠靜態方法一起使用

暫無
暫無

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

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