亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

static使用之靜態初始化塊練習題

static int age;

static{

?age=20;

}

public void show(){

?System.out.println(+age);

};

show()是普通方法為什么可以直接調用靜態成員變量age???

正在回答

2 回答

靜態初始化塊只在類加載時執行,且只會執行一次,而靜態變量age實在靜態初始化塊中初始化的,而調用show方法的時候age已經被初始化了,所以可以使用age的值

1 回復 有任何疑惑可以回復我~
#1

Habit_formation 提問者

好吧,剛剛又驗證了一下,我從一開始就錯了:普通方法本來就可以直接調用靜態方法變量。 補充一下:就算age沒有被初始化,用普通方法調用它時,也會返回一個null。 謝謝你的回答!
2016-03-06 回復 有任何疑惑可以回復我~
你好:
?
?????普通方法當然可以調用靜態成員了,實例化過程我就不贅述了,樓上已經說得很好了。
?我想你混淆的地方是靜態成員和靜態方法相關的制約了。
?靜態方法可以訪問靜態成員,但不可以訪問成員變量(原因是在實例化靜態方法的時候該成員變量還沒有進行實例化,如果非要使用成員變量話的需要進行對象實例化再行使用成員變量)。
?……
??SO,我簡單分析你的問題是把靜態方法和普通方法訪問成員變量相關知識點混淆了。
??
??希望我的回答可以幫助到你朋友,更多優質答復請與留言,謝謝!


3 回復 有任何疑惑可以回復我~
#1

Habit_formation 提問者

謝謝你的回答,我也是看到你說的第一句話才回頭去驗證的。結果發現,普通方法可以直接調用靜態成員。 再次謝謝你幫我解答>_< !
2016-03-06 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531142    人
  • 解答問題       6326    個

課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙

進入課程

static使用之靜態初始化塊練習題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號