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 李威威 閱讀(1096) 評論(0)  編輯  收藏

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


          網站導航:
           
           
          主站蜘蛛池模板: 资中县| 鹤壁市| 贵溪市| 宁晋县| 通辽市| 阳原县| 都江堰市| 香河县| 轮台县| 泰宁县| 丰都县| 库车县| 北辰区| 商河县| 昌乐县| 汝城县| 黄石市| 海南省| 永靖县| 稻城县| 邵阳市| 孟津县| 洛阳市| 宜兴市| 板桥市| 布尔津县| 海淀区| 什邡市| 宝清县| 新龙县| 陆川县| 阜平县| 康定县| 三门县| 曲松县| 东城区| 余姚市| 长泰县| 赫章县| 永寿县| 巴楚县|