2013-10-03 168 views
3

我想知道是否可以(不算壞習慣)讓公共成員進入私人課堂。我傾向於將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 
    } 
} 
+2

Bah,最好的選擇是保持一致。 –

+1

有時候這是無法避免的。實現的接口方法需要公開。 – kiheru

回答

8

我這樣做僅是爲了便於閱讀,因爲在這種情況下,公共成員具有基本上相同的可見性部件而沒有任何訪問修飾符(即包可見)。那是對的嗎?

那要看情況。如果您覆蓋現有方法(例如toString())或實現接口,則不適用。

如果您不希望從包外使用該方法,請將包設置爲私有。如果您很高興能夠從任何地方使用它,請將其公開。或者考慮另一種方式:設計您的方法訪問權限,以便如果某人只更改類別以使其成爲公共類,則您不希望更改方法訪問權限。

+2

「設計您的方法訪問權限,以便如果有人只更改了類訪問權限以使其成爲公共類,那麼您也不希望更改方法訪問權限。」我認爲這正是我所做的,但卻無法有意識地表達。謝謝! – siledh