簡體   English   中英

類中的公共靜態方法僅具有包可見性?

[英]public static methods in class with only package visiblility?

如果我在只具有包可見性的類中將所有static方法public ,是否有問題? 希望在包外部可以訪問這些方法,除非我將類的可見性更改為public,在這種情況下,我確實希望所有這些可見,而不必單獨使其公開。

將所有static方法public而不將類public滿足上述要求?

更新/說明澄清一下, static方法是工廠方法,因此我希望任何可以看到該類的人都可以使用它們。 這就是為什么我想讓它們保持最大可見性(而不是通常建議的最小可見性),以便任何可以看到該類的人都可以看到它們。 而且,當類的可見性擴展時,我也不必尋找並找到靜態方法來更改其可見性。 我想要一個撥動開關。

是。 這是訪問修飾符的正常用例。 在具有包可見性的類中使用公共方法沒有錯。

但是,“所有”靜態方法不必公開。 對於內部/實現特定的任務,您仍應使用私有和受保護的方法。

其想法是首先將可訪問性保持在最小,然后在需要時公開它們。 “將可及性降至最低”僅指綜合效果。 只要效果相同,如何實現就無關緊要。 唯一的其他考慮因素是返工...最終將此類公開時,您是否希望這些方法可見? 如果是,則最好將這些方法公開。

請注意,對於靜態方法,“效果是相同的”。 但是,對於實例方法,子類將能夠提供對包級類中公共方法的訪問。 因此,在那種情況下效果將是不同的。

通常,作為設計原則,任何方法或實例變量的訪問修飾符都應具有相同或較窄的可見性(訪問修飾符)。

暫無
暫無

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

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