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