1. 程式人生 > >java基礎——訪問許可權

java基礎——訪問許可權

控制訪問許可權

1.控制訪問許可權的關鍵字:

關鍵字 訪問範圍 繼承關係
不寫 包訪問許可權 包訪問許可權
public 所有類可訪問 子類可訪問
protected 類本身引用可訪問,包訪問許可權 子類可訪問
private 自身訪問 子類不可訪問

2.類的訪問許可權

訪問類的額外限制:

  1. 每個編譯檔案都只能有一個public類。
  2. public類名稱必須完全與含有改編譯單元的檔名相匹配。
  3. 不常用的,編譯單元可以完全不帶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();
	}
}