看板 java 關於我們 聯絡資訊
public class FirstSample{ static int a; private int b; private void counter(){ int z; z=12; System.out.println("b="+b); //那這行為什麼可以執行 } public static void main (String args[]){ int i=1,x=2; System.out.println("i="+i); System.out.println("x="+x); System.out.println("b="+b); //不能執行 System.out.println("a="+a); FirstSample abc=new FirstSample(); abc.counter(); } } 第13行不能執行,第7行為什麼可以執行? 書上的解釋還是不清楚,我是個新手 Q_Q 請板上的前輩幫我解答 感謝 -- ╔《新版十二生肖》═════════════════════════════╗ ║ ˍ ║ ●●╰‧‧ [ ] ιι . . - - ˍ▁ '' .. '〒' '. ' ' ' ξ . . '@@ ' ˊˋ ★︰ / ██╯ / @@@@ █◤ ˋˊ ║ ╚═══" " ════════════ ""══"═"════════liszt1025╝ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.236.25 ※ 編輯: ctr1 來自: 140.115.236.25 (08/03 15:12)
LPH66:這和 private 無關 和 static 有關 08/03 15:13
gmoz:static的東西要給初值 就這樣 08/03 15:50
tkcn:樓上說的不是正確的。 08/03 16:06
KarlJhan:你知道compiling時 記憶體配置的觀念嗎 08/03 17:30
jung914:因為b被定義為私有成員變數 不能被別的類別存取 08/03 18:09
jung914:如果跟a一樣定義為static就可以跑了 08/03 18:17
ayumi001:靜態方法內不能使用類別的屬性 08/03 18:26
ayumi001:除非你先建構一個FirstSample的物件 再用此物件去呼叫 08/03 18:28
ayumi001:FirstSample fs = new FirstSample();Sys...("b="+fs.b); 08/03 18:33
KarlJhan:設成static是因為編譯時,不用建立物件就會配置記憶體 08/03 21:05
KarlJhan:你想讓b為private,宣告成 static private int b; 08/03 21:08
KarlJhan:一樣能在main()裡面使用b,而不用建立物件 08/03 21:11
chchwy:以上回答有兩個人觀念錯XDDD 08/03 21:35
singlovesong:static method 不能動non-static var , method 08/04 20:21