<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)  編輯  收藏 所屬分類: 設計相關
    主站蜘蛛池模板: 亚洲AV永久无码精品一百度影院 | 亚洲变态另类一区二区三区| 免费被黄网站在观看| 黄色a级免费网站| 久久久久亚洲AV无码网站| 免费观看的a级毛片的网站| 一级特黄录像免费播放中文版| 亚洲av中文无码乱人伦在线r▽| 猫咪社区免费资源在线观看| 一区在线免费观看| 亚洲毛片免费视频| 免费a在线观看播放| 99re视频精品全部免费| 免费亚洲视频在线观看| 久久久久亚洲AV无码网站| 亚洲精品无码你懂的网站| 国产乱子精品免费视观看片| 黄色毛片免费在线观看| 亚洲国产亚洲综合在线尤物| 亚洲毛片av日韩av无码| 成人毛片手机版免费看| 国产真人无码作爱视频免费| 亚洲AV永久无码精品网站在线观看| 亚洲av无码一区二区三区乱子伦 | 亚洲一区二区三区免费在线观看| 亚洲中久无码不卡永久在线观看| 黄瓜视频影院在线观看免费| 99久久免费国产精品热| 看亚洲a级一级毛片| 亚洲一卡二卡三卡| 色噜噜综合亚洲av中文无码| 亚洲综合色在线观看亚洲| 午夜时刻免费入口| 国产香蕉免费精品视频| 精品一区二区三区免费毛片爱| 视频免费1区二区三区| 亚洲av无码成人精品国产| 国产v亚洲v天堂a无| 亚洲资源在线视频| 亚洲AV无码精品无码麻豆| 亚洲色婷婷一区二区三区|