簡體   English   中英

包私有類中的公共成員

[英]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.

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