<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

    java類的初始化順序

    abstract class base
    {
        public int age=getNumber(100);
        static
        {
            System.out.println("base static block");
        }
        {
            System.out.println("base nonstatic block");
        }
        static int sage=getNumber(50);
        base()
        {
            System.out.println(age);
            System.out.println("base start");
            draw();//會調用子類覆蓋后的方法
            System.out.println("base end");
            
        }
        static int getNumber(int base)
        {
            System.out.println("base.getNumber int"+base);
            return base;
        }
        public  void draw()
        {
            System.out.println("base.draw");
        }
    }
    public class initializeOrder extends base{
        public int age=getNumber(1001);
        private int _radius=getNumber(10);
        static int sage=getNumber(250);
        static
        {
            System.out.println("subclass static block");
        }
        {
            System.out.println("subclass nonstatic block");
        }
        initializeOrder(int radius)
        {
            _radius=radius;
            System.out.println(age);
            System.out.println("initializeOrder initialized");
        }
        public void draw()
        {
            System.out.println("initializeOrder.draw "+_radius);
        }
        /** *//**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            new initializeOrder(1000);
        }
    }
    運行結果:

    C:\java>java initializeOrder
    base static block
    base.getNumber int50
    base.getNumber int250
    subclass static block
    base.getNumber int100
    base nonstatic block
    100
    base start
    initializeOrder.draw 0
    base end
    base.getNumber int1001
    base.getNumber int10
    subclass nonstatic block
    1001
    initializeOrder initialized

    C:\java>

    總結:
    1、類只有在使用New調用創建的時候才會被JAVA類裝載器裝入
    2、JAVA類首次裝入時,會對靜態成員變量或方法進行一次初始化,但方法不被調用是不會執行的,靜態成員變量和靜態初始化塊級別相同,非靜態成員變量和非靜態初始化塊級別相同。
    先初始化父類的靜態代碼--->初始化子類的靜態代碼-->
    初始化父類的非靜態代碼--->初始化父類構造函數--->
    初始化子類非靜態代碼--->初始化子類構造函數
    3、創建類實例時,首先按照父子繼承關系進行初始化
    4、類實例創建時候,首先初始化塊部分先執行,然后是構造方法;然后從
    本類繼承的子類的初始化塊執行,最后是子類的構造方法
    5、類消除時候,首先消除子類部分,再消除父類部分

    posted on 2006-04-26 16:11 都市淘沙者 閱讀(320) 評論(1)  編輯  收藏 所屬分類: Java Basic/Lucene/開源資料

    評論

    # re: java類的初始化順序 2009-04-22 17:22 逸天

    1、類只有在使用New調用創建的時候才會被JAVA類裝載器裝入
    這句是錯的

      首次主動使用的情形:

      ·創建某個類的新實例時--new、反射、克隆或反序列化;

      ·調用某個類的靜態方法時;

      ·使用某個類或接口的靜態字段或對該字段賦值時(final字段除外);

      ·調用Java的某些反射方法時

      ·初始化某個類的子類時

      ·在虛擬機啟動時某個含有main()方法的那個啟動類。

      回復  更多評論   

    主站蜘蛛池模板: 一个人免费播放在线视频看片| 亚洲人成网站在线观看播放动漫| 亚洲av无码一区二区三区四区| 亚洲免费福利在线视频| 亚洲黄色片在线观看| 99热免费在线观看| 亚洲精品国产成人| 国内精品免费麻豆网站91麻豆 | 亚洲男女性高爱潮网站| 麻豆成人久久精品二区三区免费| 亚洲人色婷婷成人网站在线观看| a级毛片在线免费| 国产国拍亚洲精品mv在线观看| 无码日韩精品一区二区免费暖暖| 久久亚洲精品国产精品| 韩国免费一级成人毛片| 亚洲国产日韩a在线播放| 一区国严二区亚洲三区| 国产精品偷伦视频免费观看了| 国产亚洲美女精品久久久久狼| 中文字幕无码日韩专区免费| 亚洲欧洲国产综合| 在线免费观看一级毛片| 成人国产网站v片免费观看| 亚洲精品V欧洲精品V日韩精品| 无码人妻精品中文字幕免费| 亚洲毛片无码专区亚洲乱| 免费毛片在线播放| igao激情在线视频免费| 亚洲国产精品久久久久久| 成年免费大片黄在线观看岛国| 亚洲A∨精品一区二区三区下载 | 最好免费观看高清在线| 亚洲一区精品视频在线| 免费日本黄色网址| 久操视频免费观看| 亚洲精品乱码久久久久久蜜桃图片| 超清首页国产亚洲丝袜| 亚洲精品免费在线| 美女免费视频一区二区| 亚洲黄色网站视频|