java基礎——訪問許可權
阿新 • • 發佈:2018-12-31
控制訪問許可權
1.控制訪問許可權的關鍵字:
關鍵字 | 訪問範圍 | 繼承關係 |
---|---|---|
不寫 | 包訪問許可權 | 包訪問許可權 |
public | 所有類可訪問 | 子類可訪問 |
protected | 類本身引用可訪問,包訪問許可權 | 子類可訪問 |
private | 自身訪問 | 子類不可訪問 |
2.類的訪問許可權
訪問類的額外限制:
- 每個編譯檔案都只能有一個public類。
- public類名稱必須完全與含有改編譯單元的檔名相匹配。
- 不常用的,編譯單元可以完全不帶public類。這種情況下可以隨意對檔案命名。
所以對於類的訪問許可權,僅有兩個選擇:包訪問許可權和public。如果不希望其他人對該類擁有訪問許可權,可以把所有的構造器指定為private,從而阻止任何人建立該類的物件,但是有一個例外,就是該類的static成員內部可以建立。
public class Money1 {
private Money1() {
}
public static Money1 payMoney () {
return new Money1();
}
}
//返回物件的引用。此方法可以用來限制建立物件的數量(返回物件陣列的引用)
public class Money2 {
private Money2() {
}
private static Money2 m2 = new Money2();
public static Money2 access() {
return m2;
}
public void payMoney() {
System.out.println(m2.getClass().toString());
}
}
//用到了單例,因為它始終只能建立一個物件。
//測試程式碼
public class Lunch {
public void testStatic() {
Money1 money1 = Money1.payMoney();
}
public void testSingleton() {
Money2.access().payMoney();
}
}