Re: [問題] 建構子問題

看板java作者 (Gavin)時間13年前 (2012/03/15 17:18), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串7/7 (看更多)
※ 引述《jodo1984 (XDDD)》之銘言: : 這樣子的話是表示如果要使用到 instance_count 一定要透過 something() 講得精確一點,只有something 這個class 的成員能存取 : 如果宣告 static int instance_count 是代表 : class something { : static int instance_count = 0; : public a() {} : public b() {} : } : a() 和 b() 都可以使用到instance_count, 而且運算過的值不會是正確的 不管是 private static int instance_count = 0; 或是 static int instance_count = 0; a() 和 b() 皆可以對instance_count存取,無所謂正不正確 : 因為b()使用到個instance_count有可能是a()運算過後的結果.. : 如果宣告int instance_count, a() b()讀到的值都是初始化過的 : 是這樣嗎? 宣告為 int instance_count 表示為物件變數,裡面的值跟著物件走, 不同物件間相同變數互相獨立 : 另外還有另個問題 內部是否有隱藏一個 this.instance_count = instance_count; 沒有 使用this通常表示你要存取的對象為物件變數, 當你宣告static int instance_count後,雖然this.instance_count可存取到類別變數 但是容易誤解為還有另一物件變數 instance_count存在 尤其是有變數遮蔽效應存在時 類別變數習慣上透過 "類別名稱.類別變數" 方式存取 務必養成良好的程式撰寫習慣 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.85.140

03/16 11:24, , 1F
可是你之前說,只要知道自己在幹麼就好...... Orz
03/16 11:24, 1F

03/16 12:35, , 2F
就怕你誤以為自己知道阿 XD
03/16 12:35, 2F

03/16 12:37, , 3F
變數遮蔽其實還蠻容易發生的,如果變數命名遵守規則.
03/16 12:37, 3F

03/16 13:35, , 4F
雖然自己知道在做啥,但良好的習慣和規則有助程式撰寫與維護
03/16 13:35, 4F
文章代碼(AID): #1FORFxA9 (java)
討論串 (同標題文章)
文章代碼(AID): #1FORFxA9 (java)