<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://www.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)  編輯  收藏 所屬分類: 設計相關
    主站蜘蛛池模板: 青草草色A免费观看在线| 国产无遮挡又黄又爽免费视频| 免费萌白酱国产一区二区三区| 亚洲香蕉免费有线视频| 亚洲人xxx日本人18| 免费中文字幕在线观看| 久久久久免费看黄a级试看| 亚洲免费福利视频| 亚洲中文字幕视频国产| 久久精品国产免费观看三人同眠| 亚洲成A人片在线观看WWW| 国产卡一卡二卡三免费入口| 羞羞视频免费网站含羞草| 亚洲Av永久无码精品三区在线 | 亚洲色大18成人网站WWW在线播放| 国产午夜无码精品免费看动漫| 亚洲人成网站色在线入口| 91av免费观看| 日本中文字幕免费看| 久久久久亚洲av无码专区| 一区国严二区亚洲三区| 亚洲精品免费在线视频| 国产三级在线免费观看| 亚洲国产成人精品无码区二本| 免费观看一级毛片| 98精品全国免费观看视频| 免费福利在线观看| 亚洲欧美自偷自拍另类视| 亚洲黄色在线电影| 亚洲日韩aⅴ在线视频| 热久久精品免费视频| 亚洲精品视频在线免费| 中文在线观看免费网站| 噜噜噜亚洲色成人网站| 亚洲国产精品一区二区三区在线观看 | 亚洲乱码日产精品a级毛片久久| 黄网站色视频免费看无下截| 亚洲最新视频在线观看| 亚洲熟妇av一区二区三区漫画| 国产精成人品日日拍夜夜免费| 亚洲欧洲日本精品|