[問題] static & private

看板java作者 (【積π】)時間14年前 (2011/08/03 15:10), 編輯推噓8(806)
留言14則, 8人參與, 最新討論串1/2 (看更多)
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)

08/03 15:13, , 1F
這和 private 無關 和 static 有關
08/03 15:13, 1F

08/03 15:50, , 2F
static的東西要給初值 就這樣
08/03 15:50, 2F

08/03 16:06, , 3F
樓上說的不是正確的。
08/03 16:06, 3F

08/03 17:30, , 4F
你知道compiling時 記憶體配置的觀念嗎
08/03 17:30, 4F

08/03 18:09, , 5F
因為b被定義為私有成員變數 不能被別的類別存取
08/03 18:09, 5F

08/03 18:17, , 6F
如果跟a一樣定義為static就可以跑了
08/03 18:17, 6F

08/03 18:26, , 7F
靜態方法內不能使用類別的屬性
08/03 18:26, 7F

08/03 18:28, , 8F
除非你先建構一個FirstSample的物件 再用此物件去呼叫
08/03 18:28, 8F

08/03 18:33, , 9F
FirstSample fs = new FirstSample();Sys...("b="+fs.b);
08/03 18:33, 9F

08/03 21:05, , 10F
設成static是因為編譯時,不用建立物件就會配置記憶體
08/03 21:05, 10F

08/03 21:08, , 11F
你想讓b為private,宣告成 static private int b;
08/03 21:08, 11F

08/03 21:11, , 12F
一樣能在main()裡面使用b,而不用建立物件
08/03 21:11, 12F

08/03 21:35, , 13F
以上回答有兩個人觀念錯XDDD
08/03 21:35, 13F

08/04 20:21, , 14F
static method 不能動non-static var , method
08/04 20:21, 14F
文章代碼(AID): #1EEFHb0l (java)
文章代碼(AID): #1EEFHb0l (java)