[問題] 在類別中生成一個自己的實例(static用法)
大家好,我剛學習 Java,對一些概念都在似懂非懂的狀態中,希望大家解答小弟
疑惑,並指出正確的觀念應該是什麼。
以下這段程式碼
public class AccountDB {
private static AccountDB onlyInstance = null;
//其餘成員變數在此
public AccountDB() {
//建構式
}
public static AccountDB instance () {
if (onlyInstance == null) onlyInstance = new AccountDB();
return onlyInstance;
}
}
我的問題是:在 AccountDB 類別產生了一個 AccountDB 自己的實例,這到底是怎
麼回事呢?是否因為 onlyInstance 被宣告成 static,只有在類別第一次被呼叫時
會產生出來,所以不會發生無窮迴圈的問題?(我知道這裡只產生了參考物件,但
在其他地方曾看過一個類別的宣告中又生成一個自己的 static 物件的程式碼,在這
http://www.javaworld.com.tw/jute/post/view?bid=29&id=132496&sty=1&tpg=5&age=0)
第二個問題是:被宣告成 static 的 method 不會有實體變數,那宣告成 static 的
物件會真的產生一個物件,並且有自己的成員嗎?
沒用實體變數的 method (或物件?)不會佔用 heap 的空間,但是怎麼執行的呀?
觀念很不清楚,不知道有沒有善心人士可以指點一下迷津...謝謝 :)
--
☆ ★ . * ★ * ★ . ☆
. ★ ☆ ☆ * *
. ★ * . * . ★ .
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.44.232
※ 編輯: Ronamtis 來自: 140.119.44.232 (07/13 02:18)