Java static的應用練習和單例模式

/**
*create Date:2017-3-29
*modified Date:2017-3-29
*modified by:shark
*Description:聯繫靜態屬性和靜態方法
**/


public class StaticDemo{


public static void main(String [] args){
Account.num1++;
System.out.println(Account.num1);
Account.show1();
Account account=new Account();
account.show2();
}
}
class Account{

public static int num1=1;
public int num2=2;

static{
num1=20;
}
Account(){
num1=3;
num2=4;
}

public static void show1(){
System.out.println(num1);
}
public void show2(){
System.out.println(num1);
System.out.println(num2);
}

}



單例模式


/**
*create Date:2017-3-29
*modified Date:2017-3-29
*modified by:shark
*Description:單例模式
**/


public class SingleTonDemo{


public static void main(String [] args){
SingleTon.getinfo();
SingleTon.getinfo();
}
}
class SingleTon{
//private static SingleTon singleTon=new SingleTon();//靜態屬性保存一個受保護的實例化對象,靜態屬性在程序開始時優先值加載一次。餓漢式
private static SingleTon singleTon= null;//懶漢式

private SingleTon(){//受保護的構造函數
System.out.println("單例模式無論接口被調用多少次只被實例化一次");
}

// public static SingleTon getinfo(){//餓漢式
// return singleTon;//返回受保護的實例化對象
// }

public static SingleTon getinfo(){//懶漢式
if(singleTon==null){//singleTon是靜態屬性,是全局的只有在第一此被加載時時null如果被實例化則會變成一個對象。
singleTon=new SingleTon();
}
return singleTon;
}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章