Re: [問題] 建構子問題
※ 引述《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
03/16 11:24, 1F
→
03/16 12:35, , 2F
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
討論串 (同標題文章)