今天,同窗問了我一個問題,代碼以下html
public class Test10 { //這個小程序 爲啥不報錯,應該是先執行a=10這個程序塊,可是咱們沒有設定a的類型啊 { a = 10; } int a = 20; public static void main(String[] args) { Test10 t = new Test10(); System.out.println("a的數值爲:" + t.a); } }
public class Test10 { public Test10() { a=30; } //這個小程序 爲啥不報錯,應該是先執行a=10這個程序塊,可是咱們沒有設定a的類型啊 { a = 10; } int a = 20; public static void main(String[] args) { Test10 t = new Test10(); System.out.println("a的數值爲:" + t.a); } }
public class Test10 { int a = 20; { a = 10; } public static void main(String[] args) { Test10 t = new Test10(); System.out.println("a的數值爲:" + t.a); } }
輸出的結果是10。java
ps:若是我有理解錯誤的地方,請留言,謝謝!小程序
參考資料:markdown
向前引用:http://www.cnblogs.com/nokiaguy/p/3156357.html函數
執行順序RednaxelaFX的回答:https://www.zhihu.com/question/36643366?q=java%E6%88%90%E5%91%98%E5%8F%98%E9%87%8F%E5%88%B0%E5%BA%95%E4%BB%80%E4%B9%88%E6%97%B6%E5%80%99%E8%A2%AB%E8%B5%8B%E5%80%BC%EF%BC%9F測試