簡體   English   中英

私有的嵌套類(內部或靜態)是否可以具有公共訪問的方法?

[英]Does nested class (inner or static) that is private may has method with public acesses?

我正在為 Java 初學者閱讀一本書。 我看到一個例子,私有嵌套內部類是用公共方法聲明的。 有人可以向我解釋含義以及如何確定私有嵌套類(靜態/內部)方法應該是私有的還是公共的?

私有嵌套類僅在其封閉類內部可見,並且封閉類(和其他嵌套類)可以訪問其私有方法。

因此,將它們的方法設為公開或私有對編譯器來說並不重要,除非嵌套類當然擴展了基類或實現了接口,因此必須將其覆蓋方法設為公開。 使方法公開也可能是使用反射調用它們的必要條件(例如,如果其實例序列化為 JSON 或 XML,或者如果它們在 JSP 中訪問)。

我傾向於使用相同的規則來選擇公開和私有的內容,就像類沒有嵌套一樣。 這使(對我而言)更清楚的是,某些私有方法不是其公共 API 的一部分,因此不應在嵌套類本身之外使用。 如果我將嵌套類重構為頂級類,則不需要更改任何內容。

暫無
暫無

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

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