2 回答
TA貢獻1735條經驗 獲得超5個贊
本類內部中實例化對象。
類中的封裝性不光體現在對屬性的封裝上,實際上方法也是可以被封裝的,當然在方法封裝中也包含了對構造方法的封裝。
舉例:
public class GzPrivate2 {
public static void main(String[] args) {
//聲明對象,不會報錯
Singleton s = null;
//實例化對象,調用了私有化的構造方法,程序報錯
s = new Singleton();//錯誤,無法實例化對象
}
}
class Singleton{
private Singleton(){
//將構造方法進行了封裝,私有化,這時候此構造方法只能在本類中可見!
}
public void prit(){
System.out.println("nishuibaichuan");
}
}
以上程序運行報錯!因為此類Singleton中的構造方法被私有化了,只能在本類Singleton中可見,不能再外部直接實例化!既然再外部不可用,那么我們就在內部使用!
舉例:
public class GzPrivate {
public static void main(String[] args) {
//聲明對象,不會報錯
Singleton1 s = null;
}
}
class Singleton1{
//在內部產生本類的實例化對象
Singleton1 singleton1 = new Singleton1();
private Singleton1(){
//將構造方法進行了封裝,私有化,這時候此構造方法只能在本類中可見!
}
public void prit(){
System.out.println("nishuibaichuan");
}
}
由上代碼可知,當構造方法在其類中被私有化,那么就只能在其本類內部中實例化對象了!
添加回答
舉報
