- ~
關於如下application,說法正確是什麼?java
public class Test { static int x=10; static {x+=5;} public static void main(String[] args) //4 { System.out.println("x="+x); } static{x/=3;}; }//9
正確答案: B
A 4行與9行不能經過編譯,由於缺乏方法名和返回類型
B 編譯經過,執行結果是:x=5
C 編譯經過,執行結果是:x=3
D 9行不能經過編譯,由於只能有一個靜態初始化器app
class A{ static { System.out.println("父類靜態代碼塊"); } public A(){ System.out.println("父類構造方法"); } { System.out.println("父類初始化塊"); } } public class B extends A{ static{ System.out.println("子類靜態代碼塊"); } public B(){ System.out.println("子類構造方法"); } { System.out.println("子類初始化塊"); } public static void main(String[] args){ new B(); } } 父類靜態代碼塊-->子類靜態代碼塊-->父類普通代碼塊-->父類構造方法-->子類代碼塊-->子類構造方法;