public class Test {



          public Test() {


          System.out.println(" 構造函數");


          }

          @1:靜態初始化塊
          static


          {


          System.out.println("static{}");


          }

          @2:初始化塊
          {


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


          }



          public static void main(String[] args) {

           


          System.out.println("main()");


          }



          }





          運行結果為:


          static{}


          main()


          程序執行順序為:靜態初始化塊static{}-->初始化塊{}-->構造函數constructor;

          注意:即使沒有生成new此實例或此類是否有static main()函數,靜態初始化塊static{}也照樣會運行。



          在繼承的情況下:


          class Test{


          Test(){


          System.out.println("父類構造函數");


          }


          static{


          System.out.println("父類靜態初始化塊");

           
          }


          {


          System.out.println("父類初始化塊");


          }


          }




          public class  TestChild  extends Test{


          public TestChild() {


          System.out.println("子類構造函數");


          }  


          static


          {


          System.out.println("子類靜態初始化塊");


          }


          {


          System.out.println("子類初始化塊");


          }


          public static void main(String[] args) {

          new TestChild();


          }



          }



          運行結果:



          父類靜態初始化塊


          子類靜態初始化塊


          父類初始化塊


          父類構造函數


          子類初始化塊


          子類構造函數

           



          程序運行順序為:父靜態-->子靜態-->父初始化及構造-->子初始化及構造;


          注意:初始化塊和構造是接連運行的,不會父類子類交替.

          posted on 2008-08-29 01:21 李威威 閱讀(1097) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          主站蜘蛛池模板: 龙江县| 巴楚县| 金塔县| 怀远县| 武安市| 林周县| 双牌县| 淮安市| 凤庆县| 阳原县| 彭泽县| 阳朔县| 永济市| 莱州市| 英德市| 安塞县| 景洪市| 五华县| 湘潭市| 阳新县| 美姑县| 武义县| 徐水县| 白银市| 元江| 巴楚县| 会泽县| 丹江口市| 嵊泗县| 蛟河市| 元朗区| 四会市| 乌拉特后旗| 扬中市| 镇远县| 启东市| 澄迈县| 吴堡县| 财经| 漠河县| 泸定县|