我認爲在這種情況下,不需要聲明公共構造函數,因爲無論如何都不能在類之外訪問該類。但是當類只有包私有構造函數時會有一些隱藏的影響嗎?當類聲明爲包私有時,我們應該聲明一個公共構造函數嗎?
回答
不,你不必申報公共構造函數;包私有構造函數將一樣可用。無論如何,程序包之外的類將無法使用構造函數,因爲它們無法看到該類。
如果你的課程是封裝私人的,那麼修飾符關鍵字public
指定的訪問級別連同默認的包私有構造函數的訪問級別是等效的。
然而,如果在開發過程中更改了類的可見性,您可以指出該方法的意圖。當您打開之前內部的一些API時可能會發生這種情況。在這種情況下,將構造函數聲明爲私有包看起來更保守,因爲您並不是同時打開所有的門。
嗨丹尼斯河我做了一些廣泛的編輯,使答案更具可讀性。如果您不同意,您能否快速瀏覽並回滾? – 2015-04-19 16:21:48
這對我來說很好,謝謝Maarten – 2015-04-20 20:02:10
我們不能在私有類中創建一個構造函數public,因爲私有類不能在外部訪問,也不能訪問其任何方法,因爲構造函數是特殊成員函數,所以它也不能從外部訪問,因此無法聲明因爲它最終違反了類的私人定義
構造函數不能在類的私有部分中定義。編譯器不允許你這樣做,因爲定義爲私有的成員不能被主程序訪問。無論何時我們稱它只能由我們定義它的類或朋友標籤訪問。編譯器將給出構造函數名稱,並且它不可訪問。
- 1. 應該將私有內部類的構造函數聲明爲public還是private?
- 2. 一個類可以有公共和私有構造函數嗎?
- 3. 公共/私有變量聲明中它
- 4. C#構造函數聲明
- 5. 函數應該有一個原型,同時在類中聲明
- 6. 類的構造函數聲明
- 7. 聲明一個具有類構造函數作爲函數參數的函數
- 8. 我如何在IDL中聲明一個類構造函數?
- 9. 爲什麼我不能在一個C++類中聲明一個空的構造函數,該類使用一個私有構造函數來擴展
- 10. ManagedBean不聲明一個公共的無參數的構造函數
- 11. 當類有多個默認的構造函數時聲明對象數組C++
- 12. 初始化私有對象在聲明或構造函數,C#
- 13. 不能在構造函數中聲明私有變量?
- 14. 我應該在派生類中顯式聲明析構函數爲覆蓋嗎?
- 15. 這是一個構造函數聲明嗎?
- 16. 如何爲我繼承的類聲明構造函數?
- 17. 我應該附上/刪除在構造函數中聲明的變量嗎?
- 18. Objective-C:我應該聲明私有方法嗎?
- 19. 聲明爲對象構造一個包含整數數組
- 20. 我該如何聲明一個結構?
- 21. 我們是否應該聲明一個集合類或接口?
- 22. 在Java中,方法/構造函數聲明能否出現在另一個方法/構造函數聲明中?
- 23. '函數聲明需要一個名字'當聲明函數屬性時
- 24. 聲明一個類/結構
- 25. 如何聲明一個私有整數?
- 26. 聲明該類
- 27. 無法理解包裝類構造函數的聲明
- 28. DFA構造函數錯誤,有效聲明該怎麼辦?
- 29. 私人成員應該明確聲明爲私人的慣用C#嗎?
- 30. 函數聲明應該包含參數名稱嗎?
您需要考慮的相關問題。 公共抽象類應該具有公共的還是受保護的構造函數? – 2014-04-22 13:31:47