[英]Public members in package private class
我想知道在包私有類中擁有公共成員是否可以(不被認為是不好的做法)。 我傾向於為我的默認可見性類的成員添加public
關鍵字,以表明這些成員是類 API 的一部分。
我這樣做只是為了可讀性,因為在這種情況下,公共成員與沒有任何訪問修飾符的成員具有基本相同的可見性(即包可見性)。 那是對的嗎?
例子:
class ModuleImplementationClass {
private int fieldA;
private String fieldB;
private void someClassInternalMethod() {
// impl
}
public int doSth() {
// method that will be called by other classes in the package
}
}
我這樣做只是為了可讀性,因為在這種情況下,公共成員與沒有任何訪問修飾符的成員具有基本相同的可見性(即包可見性)。 那是對的嗎?
那要看情況了。 如果您要覆蓋現有方法(例如toString()
)或實現接口,則不會。
如果您不希望從包外部使用該方法,請將其設為包私有。 如果您願意在任何地方使用它,請將其公開。 或者另一種思考方式:設計您的方法訪問權限,以便如果有人僅更改類訪問權限以使其成為公共類,您也不想更改方法訪問權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.