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

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

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

    博客已轉到HuJinPu 's blog

    http://blog.csdn.net/hujinpu

    首頁 新隨筆 聯系 聚合 管理
      24 Posts :: 0 Stories :: 25 Comments :: 0 Trackbacks

    覺得Core Java在Java 初始化過程的總體順序沒有講,只是說了構造器時的順序,作者似乎認為路徑很多,列出來比較混亂.我覺得還是要搞清楚它的過程比較好.所以現在結合我的學習經驗寫出具體過程:

    過程如下:

    1.在類的聲明里查看有無靜態元素(static element, 我姑且這么叫吧),比如static int? x = 1,
    {//block
    ??????float sss = 333.3; String str = "hello";
    }
    或者 比如
    ?static {? //(static block),
    ????????????int x = 2;
    ????????????double y = 33.3;
    }
    如果有static element則首先執行其中語句,但注意static element只執行一次,在第二次創建類的對象的時候,就不會去執行static element的語句.

    2.查看此類是否為啟動運行類,若為啟動運行類,則執行main()方法里的語句對應語句

    3.若不是啟動運行類,則按代碼的排版先后順序繼續執行非static element的變量賦值以及代碼塊.

    4.最后執行構造方法,如果在被調用的構造方法里面有this關鍵字(注意,如果你考慮要調用其他構造方法,則應該把this寫在最前面,不然會產生錯誤),則先調用相應構造方法主體,調用完之后再執行自己的剩下語句.

    下面給出一個實例:

    /**
    ?*
    ?* @author livahu
    ?* Created on 2006年9月6日, 下午17:00
    ?*/
    class FirstClass {
    ??? FirstClass(int i) {
    ??????? System.out.println("FirstClass(" + i + ")");
    ??? }
    ???
    ??? void useMethod(int k) {
    ??????? System.out.println("useMethod(" + k + ")");
    ??? }
    }

    class SecondClass {
    ??? static FirstClass fc1 = new FirstClass(1);
    ??? FirstClass fc3 = new FirstClass(3);
    ??? static {
    ??????? FirstClass fc2 = new FirstClass(2);
    ??? }
    ???
    ??? {
    ??????? System.out.println("SecondClass's block, this block is not static block.");
    ??? }
    ???
    ??? SecondClass() {
    ??????? System.out.println("SecondClass()");
    ??? }
    ???
    ??? FirstClass fc4 = new FirstClass(4);
    }

    public class InitiationDemo {
    ??? SecondClass sc1 = new SecondClass();
    ???
    ??? {
    ??????? System.out.println("Hello Java World!");
    ??? }
    ???
    ??? public static void main(String[] args) {
    ??????? System.out.println("Inside main()");
    ??????? SecondClass.fc1.useMethod(100);
    ??????? InitiationDemo idObj = new InitiationDemo();
    ??? }
    ???
    ??? static SecondClass sc2 = new SecondClass();
    }


    運行結果:

    FirstClass(1)
    FirstClass(2)
    FirstClass(3)
    SecondClass's block, this block is not static block.
    FirstClass(4)
    SecondClass()
    Inside main()
    useMethod(100)
    FirstClass(3)
    SecondClass's block, this block is not static block.
    FirstClass(4)
    SecondClass()
    Hello Java World!


    posted on 2006-09-06 17:21 livahu 閱讀(660) 評論(0)  編輯  收藏 所屬分類: Learning Core Jave 7edition
    主站蜘蛛池模板: 国产午夜精品免费一区二区三区| 亚洲人成网站看在线播放| 久久久久久亚洲精品无码| 中文字幕免费在线| 亚洲午夜久久影院| 97青青草原国产免费观看| 亚洲一区二区三区四区在线观看 | 亚洲AV第一页国产精品| 成全高清在线观看免费| 国产aⅴ无码专区亚洲av| 99久久婷婷免费国产综合精品| 国产综合精品久久亚洲| 少妇性饥渴无码A区免费| 亚洲国产高清在线| 91热成人精品国产免费| 亚洲精品二三区伊人久久| 免费看无码自慰一区二区| 国产精品亚洲专一区二区三区| 亚洲精品动漫人成3d在线| 精品国产一区二区三区免费| 亚洲第一二三四区| 国内一级一级毛片a免费| 高潮内射免费看片| 久久精品亚洲中文字幕无码网站| 中文字幕免费视频| 亚洲成a人片在线不卡一二三区| 免费女人18毛片a级毛片视频| 国产V片在线播放免费无码| 亚洲欧洲第一a在线观看| 国产麻豆视频免费观看| 亚洲av成人中文无码专区| 日韩精品亚洲aⅴ在线影院| 免费一级毛片无毒不卡| 亚洲情A成黄在线观看动漫软件| 国产成人精品免费直播| 国产成人AV免费观看| xxx毛茸茸的亚洲| 免费人成在线观看网站视频 | 亚洲GV天堂无码男同在线观看| 又黄又爽的视频免费看| 一区二区三区在线免费看|