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

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

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

    憨厚生

    ----Java's Slave----
    ***Java's Host***

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      165 隨筆 :: 17 文章 :: 90 評論 :: 0 Trackbacks

    轉 http://m.tkk7.com/liuwentao253/archive/2008/08/01/219416.html
    一  :


    二 :





    三 :



    四 :



    五 :




    類與類之間的關系對于理解面向對象具有很重要的作用,存在以下關系:
    (1)泛化(Generalization)   :狗與動物  (空箭頭)
    (2)關聯(Association)       :公司與員工有特定的某種關系 (實線)
    (3)依賴(Dependency)    :人依賴螺絲刀 (虛線箭頭)
    (4)聚合(Aggregation)     : 電腦和CPU,主板 (菱形空間頭)







    詳細展開  :
    一 .泛化(Generalization)
     表示類與類之間的繼承關系接口與接口之間的繼承關系或類對接口的實現關系
     一般泛化的關系是從子類指向父類的:
     父類 父類實例=new 子類()




    1/**
    2* 一個測試類
    3*/

    4public class Demo{    
    5    public void test() {
    6        //老虎的實例 也屬于動物類型 
    7        Animal animal = new Tiger();  
    8    }
        
    9}
     



    1/**
    2*  動物類
    3*/

    4public class Animal{
    5
    6}
        


    1/**
    2* 老虎類 
    3*/

    4public class Tiger extends Animal{
    5
    6}
      


    二 .依賴(Dependency)

    對于兩個相對獨立的對象,當一個對象(螺絲刀)負責構造另一個對象(人)的實例,或者一個對象(人)依賴另一個對象(螺絲刀)的服務時,這兩個對象之間主要體現為依賴關系。

    下面這個例子顯然屬于后者 :人要做一個擰螺絲的動作,他就要依賴于 螺絲刀對象,因為只有螺絲刀對象才提供擰螺絲的服務。



     1/**
     2 * 說明 :人 這個 類 
     3 */

     4public class Person {
     5    /**
     6     * 人擁有的一個  擰螺絲  的  動作 依賴于螺絲刀這個類
     7     * @param screwdriver :螺絲刀類
     8     */

     9     public void screw(Screwdriver screwdriver)
    10        //螺絲刀類提供了擰螺絲這個服務
    11        screwdriver.screw();    
    12    }
      
    13}


    三 .關聯(Association)
    對于兩個相對獨立的對象,當一個對象的實例與另一個對象的一些特定實例存在固定的對應關系時,這兩個對象之間為關聯關系。
    關聯關系是使用實例變量來實現
    比如客戶和訂單,每個訂單對應特定的客戶,每個客戶對應一些特定的訂單;再例如公司和員工,每個公司對應一些特定的員工,每個員工對應一特定的公司




     1/**
     2 * 公司
     3 */

     4public class Company{   
     5    //員工
     6    private Employee employee;
     7
     8    /**
     9     * 公司運作
    10      */

    11    public void run(){    
    12        employee.startWorking();    
    13    }

    14    
    15    public Employee getEmployee(){    
    16        return employee;    
    17    }
        
    18    public void setEmployee(Employee employee){    
    19        this.employee=employee;    
    20    }
      
    21}
     

    四 : 聚合(Aggregation)
    當對象A被加入到對象B中,成為對象B的組成部分時,對象B和對象A之間為聚集關系。聚合是關聯關系的一種,是較強的關聯關系,強調的是整體與部分之間的關系。
    [關聯與聚合的區別]
    (1)關聯關系所涉及的兩個對象是處在同一個層次上的。比如人和自行車就是一種關聯關系,而不是聚合關系,因為人不是由自行車組成的。
    聚合關系涉及的兩個對象處于不平等的層次上,一個代表整體,一個代表部分。比如電腦和它的顯示器、鍵盤、主板以及內存就是聚集關系,因為主板是電腦的組成部分。
    (2)對于具有聚集關系(尤其是強聚集關系)的兩個對象,整體對象會制約它的組成對象的生命周期。部分類的對象不能單獨存在,它的生命周期依賴于整體類的對象的生命周期,當整體消失,部分也就隨之消失。比如張三的電腦被偷了,那么電腦的所有組件也不存在了,除非張三事先把一些電腦的組件(比如硬盤和內存)拆了下來。



     1public class Computer{    
     2    private CPU cpu;    
     3    public CPU getCPU(){    
     4        return cpu;    
     5    }
        
     6    public void setCPU(CPU cpu){    
     7        this.cpu=cpu;    
     8    }
        
     9    //開啟電腦    
    10    public void start(){    
    11        //cpu運作    
    12        cpu.run();    
    13    }
        
    14}
      
    posted on 2009-03-10 17:55 二胡 閱讀(184) 評論(0)  編輯  收藏 所屬分類: 設計相關
    主站蜘蛛池模板: 美女啪啪网站又黄又免费| 亚洲高清免费在线观看| 一本色道久久88亚洲精品综合 | 91黑丝国产线观看免费| 亚洲人成影院在线| 国产精品白浆在线观看免费| 久久久亚洲精品视频| 伊人久久免费视频| 亚洲人成网男女大片在线播放| 国产高清免费视频| 亚洲中文字幕无码av永久| 大香人蕉免费视频75| 国产亚洲福利一区二区免费看| 可以免费观看的一级毛片| 老外毛片免费视频播放| 久久久亚洲精品蜜桃臀 | 久久青草免费91观看| 夜夜亚洲天天久久| 男女做羞羞的事视频免费观看无遮挡 | 亚洲性无码一区二区三区| 日本免费网站在线观看| 青青草97国产精品免费观看| 亚洲午夜福利AV一区二区无码| 华人在线精品免费观看| 亚洲成a人片在线观看中文app| 成人影片麻豆国产影片免费观看 | 亚洲日韩一区精品射精| 四虎永久成人免费影院域名| 国产精品综合专区中文字幕免费播放| 亚洲综合色自拍一区| 狼群影院在线观看免费观看直播 | 国产L精品国产亚洲区久久| 男的把j放进女人下面视频免费| 亚洲欧洲日产v特级毛片| 四虎国产精品免费视| 久久午夜无码免费| 亚洲日本成本人观看| 亚洲深深色噜噜狠狠爱网站| 免费影院未满十八勿进网站| 久久久久亚洲AV无码去区首| 亚洲第一AV网站|