在面向對象的設計中,最關鍵的問題就是”將會變與不會變的東西分離開來”。
有時為瞭不讓客戶程序員修改他們不該修改的東西,有時為瞭讓自己修改代碼之後不會讓客戶程序出現問題,就必須設置一些控制訪問符,來限定各自的訪問范圍。
Java中的范圍控制符有4個,分別是private、package(默認的范圍)、protected、public,
權限范圍由小到大。
方法及屬性的訪問控制
Private的訪問范圍是隻有在本類中才可以訪問
Package的訪問范圍是在本package中的所有類都可以訪問
Protected的訪問范圍是該類的子類,及和它在同一package中的類可以訪問
Public在任何地方都可以訪問
類的訪問控制
類的訪問權限隻能是package(默認)和public的
為瞭控制不讓別人隨便訪問這個類,可以通過將這個類的構造函數設為private,這樣就隻有你就沒有人可以創建這個對象啦。
你可以用一個static(靜態)方法創建對象。
實例:
public class Sample {
private Sample (){
System.out.println(“create a Sample “);
}
public static Sample get Sample (){
return new Sample ();
}
}
或者可以先定義創建一個private的static的對象,再通過一個public的static方法返回這個對象的引用,這樣做到話可以實現 singleton(單例)模式,隻會創建一個對象。
實例:
public class Sample {
private static Sample s1 = new Sample ();
public static Sample getSample(){
return s1;
}}