作者ctr1 (【積π】)
看板java
標題[問題] static & private
時間Wed Aug 3 15:10:24 2011
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