<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 更多精彩內容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    java aggregation

    文檔

    java aggregation

    aggregation是association里的一個特殊的分類,aggregation里的關系只能是單向的,而association單向和雙向均可。java中的aggregation就是建立了一個類,然后在其他地方引用來使用。
    推薦度:
    導讀aggregation是association里的一個特殊的分類,aggregation里的關系只能是單向的,而association單向和雙向均可。java中的aggregation就是建立了一個類,然后在其他地方引用來使用。

    java aggregation是什么,讓我們一起了解一下?

    aggregation是association里的一個特殊的分類,aggregation里的關系只能是單向的,而association單向和雙向均可。java中的aggregation就是建立了一個類,然后在其他地方引用來使用。

    舉個例子,比如有兩個類是Student和Address,在特定情境下,每一個student的對象一定包含了一個Address的對象,而每一個address可以只含有街道名稱或是門牌號,不一定是個學生的地址,所以不一定需要student的一個對象作為屬性,因此這里就是aggregation。

    實戰操作:

    package?com.ray.ch05;
    public?class?Test?{
    public?static?void?main(String[]?args)?{
    }
    }
    package?com.ray.ch05;
    public?class?Test2{
    public?static?void?main(String[]?args)?{
    new?Test();
    }
    }

    建立了Test這個類,我們可以在程序的任何地方new出來,就好像在Test2里面new一樣,這樣其實就是最簡單的聚合復用。

    但是,我們在復用的時候需要注意一點,就是對象的初始化問題。

    我們修改一下上面的代碼:

    package?com.ray.ch05;
    ?
    public?class?Test?{
    public?void?say()?{//增加了一個公共方法
    System.out.println("method?say");
    }
    ?
    public?static?void?main(String[]?args)?{
    }
    }
    package?com.ray.ch05;
    ?
    public?class?Test2?{
    private?Test?test;//引用Test
    ?
    private?void?runSay()?{
    test.say();
    }
    ?
    public?static?void?main(String[]?args)?{
    new?Test2().runSay();
    }
    }

    運行輸出:

    Exception?in?thread?"main"?java.lang.NullPointerException
    ?at?com.ray.ch05.Test2.runSay(Test2.java:7)
    ?at?com.ray.ch05.Test2.main(Test2.java:11)

    空指針錯誤,因為我們在Test2里面沒有實例化對象test,而默認的編譯器只是初始化為null,因此會有運行時錯誤。

    因此,我們必須注意對象的初始化,因為它們不像基礎類型那樣,編譯器默認賦值。這個是編譯器的優化策略。

    所以,我們Test2上面的代碼必須把Test這個類的對象實例化出來。

    package?com.ray.ch05;
    ?
    public?class?Test2?{
    private?Test?test=new?Test();
    ?
    private?void?runSay()?{
    test.say();
    }
    ?
    public?static?void?main(String[]?args)?{
    new?Test2().runSay();
    }
    }

    重新運行輸出:

    method?say

    以上就是小編今天的分享了,希望可以幫助到大家。

    文檔

    java aggregation

    aggregation是association里的一個特殊的分類,aggregation里的關系只能是單向的,而association單向和雙向均可。java中的aggregation就是建立了一個類,然后在其他地方引用來使用。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    java akka ipad2是哪年的 java algorithm iphone呼叫失敗是什么原因 java android java annotation java ant java apns 蘋果13藍牙搜索不到設備怎么辦 java append java application java apriori java archive java arcsin java arccos java arctan java args java arrays.sort java ascii java asmx java aes加密 java advice java addall java add java actuator 西北五省是哪五省 java activity java activiti 甕安縣屬于哪個市 java active 茉莉花茶是綠茶嗎 java a++和++a的區別 熊貓只有中國才有的嗎 idea新建一個java項目 java 32bit java -xms idea新建java項目 祁連山在哪個省境內 行程碼帶*號什么意思 南極洲有哪些國家
    Top 国产精品国产三级国产AV′| 99精品视频在线观看免费| 又紧又大又爽精品一区二区| 中文字幕精品亚洲无线码二区| 久久99久久99精品免观看不卡| 国产精品无码久久综合网| 国产精品自在线拍国产| 久久精品女人天堂AV免费观看| 国产亚洲精品美女久久久 | 精品无人码麻豆乱码1区2区| 国产精品制服丝袜| 国产精品久久久香蕉| 中文无码久久精品| 国产精品免费视频观看拍拍| 91精品国产麻豆国产自产在线 | 国产精品自产拍在线观看花钱看| 人妻少妇精品专区性色AV| 久久久国产精品四虎| 国产精品成人观看视频网站| 国产精品嫩草影院一二三区入口 | 亚洲精品乱码久久久久蜜桃 | 久久精品人人做人人爽97| 日韩精品人妻av一区二区三区| 精品一区二区三区东京热| 久久精品视频16| 伊人 久久 精品| 国产精品久久久久久久久久影院| 亚洲精品在线免费观看| 亚洲国产成人精品无码区在线网站| 日韩精品无码一区二区三区| 国产精品JIZZ在线观看老狼| 免费视频成人国产精品网站| 国产精品久久久久久麻豆一区| 91精品日韩人妻无码久久不卡 | 亚洲精品久久无码| 亚洲а∨精品天堂在线| 亚洲国产精品成人午夜在线观看 | 久久精品久噜噜噜久久| 国产精品久久久久久搜索| 国产精品久久久久天天影视| 国产成人精品怡红院|