Scott@JAVA

          Java, 一杯濃濃的咖啡伴你到深夜

          初始化

          當Java程序運行時,需要某一個類,但該類還沒有載入內存,則Java程序將該類裝入內存,然后立即執行類中定義的類初始化塊,執行次序就是類初始化定義的次序,然后執行對象初始化塊,執行次序是定義的次序,最后執行類的構造函數,繼續對對象進行初始化。

          例:
          class?A?{
          ????
          public?A()?{
          ????????System.out.println(
          "A的構造函數");
          ????}


          ????
          {
          ????????System.out.println(
          "A的動態初始化塊");
          ????}


          ????
          static?{
          ????????System.out.println(
          "A的靜態初始化塊");
          ????}

          }


          class?B?extends?A?{
          ????
          public?B()?{
          ????????System.out.println(
          "B的構造函數");
          ????}


          ????
          {
          ????????System.out.println(
          "B的動態初始化塊");
          ????}


          ????
          static?{
          ????????System.out.println(
          "B的靜態初始化塊");
          ????}

          }


          public?class?Test?{
          ????
          public?static?void?main(String[]?args)?{
          ????????System.out.println(
          "第一次生成類B的對象時輸出");
          ????????
          new?B();
          ????????System.out.println(
          "第二次生成類B的對象時輸出");
          ????????
          new?B();
          ????}

          }

          程序運行結果如下:

          第一次生成類B的對象時輸出
          A的靜態初始化塊
          B的靜態初始化塊
          A的動態初始化塊
          A的構造函數
          B的動態初始化塊
          B的構造函數
          第二次生成類B的對象時輸出
          A的動態初始化塊
          A的構造函數
          B的動態初始化塊
          B的構造函數

          posted on 2007-01-24 19:29 Scott@JAVA 閱讀(428) 評論(1)  編輯  收藏 所屬分類: Jave SE 6

          Feedback

          # re: 初始化 2007-01-25 10:44 小車馬

          總結的很不錯,thinking in java 里更詳細些,呵呵

          潛力貼論壇 http://content.uu1001.com  回復  更多評論   


          主站蜘蛛池模板: 南昌县| 左贡县| 南平市| 永靖县| 枝江市| 登封市| 日土县| 临洮县| 凤城市| 固原市| 永清县| 清新县| 湛江市| 临颍县| 蒙自县| 荆州市| 抚顺县| 平阴县| 东乌珠穆沁旗| 平潭县| 台山市| 克什克腾旗| 西丰县| 马尔康县| 孟津县| 德钦县| 建宁县| 商南县| 鸡东县| 天峨县| 凤台县| 湟源县| 秦皇岛市| 临高县| 阿图什市| 雷波县| 甘洛县| 昆明市| 贵定县| 应城市| 武城县|