Static與Auto之不同處

2012年12月21日 星期五

auto由程式自動控制變數的生命週期,通常指的就是變數在進入其作用範圍的時候被分配,離開其作用範圍時被釋放;而static就是不auto,變數在程式開始時被載入記憶體,直到程式退出前才被釋放;也就是static是按照程式的生命週期來分配釋放變數的,而不是變數自己的生命週期。

範例:

public class EditPicture
{
public static EditPicture getInstance()
{
return new EditPicture();
}

public void Edit(int id)
{
//修改圖片方法
}

public void Add()
{
//新增圖片方法
}

}


 



如果只會用到處理圖片可以這樣寫



public class Product
{
public void ProductEdit(int id)
{
//處理圖片
EditPicture.getInstance().Edit(id);
}
}


若需要用到add及edit則要用以下方式寫



public class Product
{
public void PictureProcess(int id)
{
EditPicture obj = new EditPicture();
obj.Add();
obj.Edit(id);
}
}


這樣寫會佔用太多記憶體資源是不對的



public class Product
{
public void PictureProcess(int id)
{
EditPicture.getInstance().Edit(id);
EditPicture.getInstance().Add();
}
}


 



參考來源:http://www.dotblogs.com.tw/darren.net/archive/2008/08/12/4870.aspx

0 意見: