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

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

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

    Picses' sky

    Picses' sky
    posts - 43, comments - 29, trackbacks - 0, articles - 24

    也談一個對象初始化細節(jié)

    Posted on 2007-12-20 10:46 Matthew Chen 閱讀(1082) 評論(1)  編輯  收藏 所屬分類: Java SE
    網(wǎng)上這類的文章多了,也就歸納了一下:

    初始化按串行順序如下:

    ……
    超類靜態(tài)成員變量
    超類靜態(tài)塊
    子類靜態(tài)成員變量
    子類靜態(tài)塊
    ……

    ……
    超類成員變量分配引用并默認初始化
    子類成員變量分配引用并默認初始化
    ……
    ……
    超類成員變量用顯式初始化值賦值
    超類構造器
    子類成員變量用顯式初始化值賦值
    子類構造器
    ……
    ……


    另外,這樣的初始化順序中,如果子類繼承了超類的a方法并在其中修改了子類自己的成員變量,而a方法在超類的構造函數(shù)中被調用,那么這個修改的值將被“子類成員變量用顯式初始化值賦值”這一過程重新覆蓋而導致修改失效。

    我是這樣理解的,大家給點意見。


    Feedback

    # re: 也談一個對象初始化細節(jié)  回復  更多評論   

    2007-12-20 14:53 by 隔葉黃鶯
    記住以下兩點就好理解了

    類的成員先于實例成員初始化
    父類實例與子類實例的關系可以理解為 Is-A 的關系

    所以子類實例初始化之前必須先有父類的實例

    其實還應該區(qū)分類的初始化和實例了初始化,反應到字節(jié)碼操作指令中是
    類的初始化方法是 <clinit>()
    實例的初始化方法是 <init>()

    任何一個類的初媽化都要求它的所有祖先類(而不是祖先接口)預先被初始化。而一個接口的初始化,并不要求它的祖先接口預先被初始化。

    類有主動初始化和被動初始化,如new和使用靜態(tài)字段,還有我們一定用過 Class.forName() 方法,它還有一個重載方法 forName(String name, boolean initialize, ClassLoader loader),一個參數(shù)的forName,默認的initialize 是 true,即加載后就初始化。
    主站蜘蛛池模板: 免费成人福利视频| 亚洲成AV人片高潮喷水| 一级人做人爰a全过程免费视频 | 国产无遮挡裸体免费视频在线观看| 免费看香港一级毛片| 亚洲一卡2卡4卡5卡6卡残暴在线| 91精品全国免费观看含羞草| 亚洲第一二三四区| 成年人视频免费在线观看| 亚洲一卡2卡3卡4卡国产网站| 波多野结衣在线免费观看| 亚洲www在线观看| 国产成人高清精品免费软件| 精品亚洲成A人在线观看青青| 国产最新凸凹视频免费| 黄网站色视频免费看无下截 | 国产亚洲精品线观看动态图| 一区二区免费国产在线观看| 亚洲五月综合缴情在线观看| 久久成人a毛片免费观看网站| 亚洲美女aⅴ久久久91| 亚洲中文无码永久免费| 亚洲高清乱码午夜电影网| 亚洲国产成人久久综合一区77| 黄色免费网站在线看| 亚洲日本乱码在线观看| 91视频免费网址| 亚洲av永久无码精品秋霞电影秋 | 女同免费毛片在线播放| 亚洲六月丁香六月婷婷色伊人| 成人免费视频软件网站| 久久久久久久久久久免费精品| 精品亚洲成AV人在线观看| 永久免费看bbb| 免费国产污网站在线观看| 亚洲AV一二三区成人影片| 亚洲一区日韩高清中文字幕亚洲| 香蕉免费一区二区三区| 亚洲天然素人无码专区| 亚洲免费观看视频| 久久不见久久见中文字幕免费|