- 相關(guān)推薦
淺談Java類(lèi)與類(lèi)之間的關(guān)系
類(lèi)與類(lèi)之間最常見(jiàn)的關(guān)系主要有三種:依賴(lài)(uses-a)、聚合(has-a)和繼承(is-a)。
下面以在線(xiàn)書(shū)店訂單系統(tǒng)為例,來(lái)詳細(xì)的講述這三種關(guān)系的概念。
在線(xiàn)書(shū)店訂單系統(tǒng)的主要功能是:注冊(cè)用戶(hù)可以登錄到網(wǎng)上書(shū)店選購(gòu)圖書(shū),在線(xiàn)填寫(xiě)訂單,并支付購(gòu)書(shū)款。書(shū)店確認(rèn)已經(jīng)收到購(gòu)書(shū)款時(shí),按用戶(hù)留下的地址郵寄圖書(shū)?梢栽谶@個(gè)系統(tǒng)中建立幾個(gè)類(lèi),有圖書(shū)(book)、賬戶(hù)(account)、訂單(order)、地址(address)等,如下圖所示:
依賴(lài)(uses-a)
依賴(lài)關(guān)系是類(lèi)中最常見(jiàn)的關(guān)系,例如訂單類(lèi)(order)需要訪(fǎng)問(wèn)用戶(hù)賬戶(hù)類(lèi)(account),所以在訂單類(lèi)中需要引用賬戶(hù)類(lèi),即訂單類(lèi)依賴(lài)賬戶(hù)類(lèi),但圖書(shū)類(lèi)不需要依賴(lài)賬戶(hù)類(lèi)。
如果修改賬戶(hù)類(lèi),會(huì)影響到訂單類(lèi)。依賴(lài)的實(shí)質(zhì)就是類(lèi)中的方法可以操作另一個(gè)類(lèi)的實(shí)例。在實(shí)際程序設(shè)計(jì)中,建議盡量減少相互依賴(lài)類(lèi)的數(shù)量。如下圖所示:
聚合(has-a)
因?yàn)橛唵涡枰该饔嗁?gòu)什么圖書(shū),這就涉及到圖書(shū)類(lèi),即包含了圖書(shū)類(lèi)。聚合與依賴(lài)關(guān)系的不同在于,訂單類(lèi)可以不擁有所有賬戶(hù)類(lèi)對(duì)象,但是必須擁有所有圖書(shū)類(lèi)對(duì)象,因?yàn)閳D書(shū)類(lèi)的對(duì)象是訂單的主要目的,如下圖所示:
繼承
繼承就是一個(gè)類(lèi)能調(diào)用另一個(gè)類(lèi)的所有數(shù)據(jù)成員,并在當(dāng)前類(lèi)中不需要再重新定義,本章已經(jīng)講得很明白了。
【淺談Java類(lèi)與類(lèi)之間的關(guān)系】相關(guān)文章:
Java的類(lèi)07-19
java類(lèi)的構(gòu)成08-02
Java的類(lèi)常識(shí)08-28
Java對(duì)象和類(lèi)08-27
Java類(lèi)的基本構(gòu)成09-15
Java類(lèi)的基本構(gòu)成09-11
java類(lèi)加載器09-12
什么是java集合類(lèi)05-29