構造函數私有化的意義在於聲明多個對象卻只占用一個內存。
寫一個類
class SY {//構造函數私有
private static SY instance = new SY();//通過私有的靜態的方式來聲明一個屬性,這個屬性的名字是instance,類型是SY,指向一個新生成的內存
private SY() {//將構造函數私有化
}
public static SY getinstance() {
return SY.instance;//返回instance
}//構造函數私有化的意義是不管聲明幾個對象,都只實例化了一個,也就是說,只占用了一個內存。
private String name = "小明";
private int age = 12;
public void setName(String name){
this.name=name;
}
public void setAge(int age){
this.age=age;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
}
class SYY {
public static void main(String[] args) {
SY a = SY.getinstance();
SY b = SY.getinstance();
System.out.println(a);
System.out.println(b);
System.out.println(a == b);//true,並且a和b返回的地址一樣
a.setAge(12);
b.setAge(14);
System.out.println(a==b);
System.out.println(a.getAge());//14
System.out.println(b.getAge());//14
}
}
具體我畫了內存圖