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
Read more...