使用private關鍵字可以聲明屬性,聲明的屬性不能被外部直接訪問。同樣,可以使用private聲明方法,聲明的方法只能在類的內部看見。
·構造方法也可以使用private聲明,一旦聲明,則外部就不能對對象進行實例化操作了。
私有方法: 顧名思義,簡單理解就是只有“自己”才能使用的方法。 例如有一個類Test如下: class Test(){ private Test(){ //這個構造方法是私有方法 } } 那么在其它類中,如果有代碼這么寫 Test test = new Test(); 那么就會報錯,因為Test()這個構造方法是Test類私有的,別的類不可以調用,只有Test類自身中的代碼才可以訪問它。
范例1:
class Single{
private Single() ; //將構造方法私有化
public void print(){
System.put.println("Hello world!!");
}
}
public class SingleDemo01{
public static void main(String args[]){
Single s = null ; //聲明對象
s = new Single ; //實例化對象
s.print();
}
}
運行結果:
不能編譯,因為Single()是私有化的構造方法,在“s = new Single()”中則不可以執行。
修改范例2:
class Single{
private static Single instance = new Single();
// 在類中對構造方法進行實例化
private Single() ; //將構造方法私有化
public static Single getInstance(){
return instance ;
}
//對insance 對象進行get方法取得
public void print(){
System.put.println("Hello world!!");
}
}
public class SingleDemo02{
public static void main(String args[]){
Single s = null ; //聲明對象
s = Single.getInstance();
//通過類中的get方法對對象instance簡介進行實例化
s.print();
}
}
執行結果:Hello world!!
總結:
在類中如果聲明了私有化的構造方法,那么主方法中若取得並且實例化對象可以用以下方法:
·在類中進行對私有化的構造方法的實例化。
·用static的get方法對實例化的對象進行取值。
·在主方法中取得實例化對象用get方法。
此程序的意義:
如果現在一個類只能有一個實例化對象的話,那么這樣的設計就稱為--單例設計。
當整個系統中只需要一個實例化的對象時,就是用此設計模式。