1.類成員的訪問權限控制
Java中類成員的訪問權限分為四類:private,無(默認情況下),protected和public。其權限控制如下表所示:
修飾詞 |
本類 |
同一個包的類 |
繼承類 |
其他類 |
private |
√ |
× |
× |
× |
無(默認) |
√ |
√ |
× |
× |
protected |
√ |
√ |
√ |
× |
public |
√ |
√ |
√ |
√ |
其中,類成員在默認情況下沒有任何修飾詞,這樣的成員具有“包訪問權”,即位於同一個包中的類對其有訪問權;而protected為“繼承訪問權”,即該類的子類對其具有訪問權(同時,位於同一個包中的類也對其具有訪問權)。
2.類自身的訪問權限控制
對於java類自身(除了內部類外,因為內部類也是類的成員故有上述四種權限修飾),其訪問權限僅有兩種:public和“無”(即包訪問權),而沒有private和protected。如果你 不希望其他任何人對該類擁有訪問權,你可以把所有的構造器都指定為private,從而阻止任何人創建該類的對象。但是可以通過該類的靜態方法創建對象,如下面的例子:
class Soup { // private Constructor! private Soup() {} // Allow creation via static method: public static Soup makeSoup() { return new Soup(); } }
注意:
1、如果一個.java源文件中有多個類,那么只能有一個類是public類;如果有一個類是public類,那么源文件的名字必須與這個類的名字完全相同。
2、如果源文件中沒有public類,那么源文件的名字可以任意取。這樣編譯是沒問題的,運行時選擇主類(包含main方法)運行就可以。
3、main()方法不是必須要放在public類中才能運行程序。