1. 程式人生 > >比較常見的Java類之間的關係

比較常見的Java類之間的關係

依賴
use
這裡寫圖片描述
如果A依賴於B,則B表現為A的區域性變數,方法引數,靜態方法呼叫等

public class Person  
{  
    public void drive(Card card)  
    {  
        card.u();  
    }  
    ……  
}  
public class Card  
{  
    public void u()  
    {  
        ......  
    }  
    ……  
}  

參考我的https://blog.csdn.net/hejj8023/article/details/70596616


這裡寫圖片描述
關聯
has
表現為變數(has a),類與類之間的聯接,它使一個類知道另一個類的屬性和方法。例如如果A依賴於B,則B體現為A的全域性變數,如person類和company類。

關聯關係有雙向關聯和單向關聯:
1、雙向關聯:兩個類都知道另一個類的公共屬性和操作。
2、單向關聯:只有一個類知道另外一個類的公共屬性和操作。
大多數關聯應該是單向的,單向關係更容易建立和維護,有助於尋找可服用的類。

關聯關係在java中一般

使用成員變數來實現

含義:類與類之間的連結,關聯關係使一個類知道另外一個類的屬性和方法;通常含有“知道”,“瞭解”的含義。關聯可以是雙向的,也可以是單向的
舉例:“漁民”需要知道“天氣”情況才能夠出海

class Driver {
//使用成員變數形式實現關聯

   Car mycar;   
    public void drive(){   
        mycar.run();   
    }   
    ...   
    //使用方法引數形式實現關聯   
    public void drive(Car car){   
        car.run();   
    }   
}  

總結

依賴和關聯的區別在於依賴是使用use,關聯是擁有has.
舉例:人依賴於水和空氣;汽車依賴汽油;
依賴關係比較好區分,它是耦合度最弱的一種,在java中表現為局域變數、方法的形參,或者對靜態方法的呼叫

use關聯關係在java中一般使用成員變數來實現

has我“擁有”這個車。
使用成員變量表達這個意思:車是我自己的車,

use使用方法引數表達:
車不是我的,我只是個司機,別人給我什麼車我就開什麼車,我使用這個車。

這裡寫圖片描述