[問題] 在類別中生成一個自己的實例(static用法)

看板java作者 (Tis)時間18年前 (2007/07/13 02:16), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
大家好,我剛學習 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)
文章代碼(AID): #16bc_qr4 (java)