程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> java-JAVA新手求教一段代碼的解釋

java-JAVA新手求教一段代碼的解釋

編輯:編程解疑
JAVA新手求教一段代碼的解釋

class StaticSuper{
static{
System.out.println("super static block")
}
StaticSuper{
System.out.println("super constructor");
}
}

public class StaticTests extends StaticSuper{
static int rand;
static{
rand=(int)(Math.random()*6);
}

StaticTests(){
System.out.println("constructor");
}

publci static void main(String[] args){
System.out.pringln("in main");
StacticTest st =new StacticTests();
}
}

上面這段的輸出順訊是這樣的
super static block
static block 3
in main super constructor
constructor

在下小白。。誰能幫忙解釋一下為什麼是這個輸出順序

另外
像這種,是什麼意思?是方法?構造函數?還是啥意思,為啥沒有()符號
StaticSuper{
System.out.println("super constructor");
}

最佳回答:


首先:按照你的代碼,運行結果應該是:
super static block
in main
super constructor
constructor
然後,你代碼裡面有許多錯誤,其中最大的就是你的構造方法沒有打括號,你就不用為沒有()疑惑了,是你沒有打。

然後說下結果的原因吧,
1.靜態方法塊是唯一一個可以在main方法執行的前執行的代碼塊
2.當實例化子類時,會先執行父類的構造方法,然後執行子類的構造方法。
了解上面的知識點 你就能很好的理解這段程序了。

u011371270
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved