欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡單談?wù)凧ava類與類之間的關(guān)系

 更新時(shí)間:2016年05月20日 08:58:28   投稿:hebedich  
類與類之間的關(guān)系對(duì)于理解面向?qū)ο缶哂泻苤匾淖饔茫郧霸诿嬖嚨臅r(shí)候也經(jīng)常被問到這個(gè)問題,在這里我就簡單給大家介紹一下。

類與類之間最常見的關(guān)系主要有三種:依賴(uses-a)、聚合(has-a)和繼承(is-a)。

下面以在線書店訂單系統(tǒng)為例,來詳細(xì)的講述這三種關(guān)系的概念。

在線書店訂單系統(tǒng)的主要功能是:注冊(cè)用戶可以登錄到網(wǎng)上書店選購圖書,在線填寫訂單,并支付購書款。書店確認(rèn)已經(jīng)收到購書款時(shí),按用戶留下的地址郵寄圖書。可以在這個(gè)系統(tǒng)中建立幾個(gè)類,有圖書(book)、賬戶(account)、訂單(order)、地址(address)等,如下圖所示:

依賴(uses-a)

依賴關(guān)系是類中最常見的關(guān)系,例如訂單類(order)需要訪問用戶賬戶類(account),所以在訂單類中需要引用賬戶類,即訂單類依賴賬戶類,但圖書類不需要依賴賬戶類。

如果修改賬戶類,會(huì)影響到訂單類。依賴的實(shí)質(zhì)就是類中的方法可以操作另一個(gè)類的實(shí)例。在實(shí)際程序設(shè)計(jì)中,建議盡量減少相互依賴類的數(shù)量。如下圖所示:

聚合(has-a)

因?yàn)橛唵涡枰该饔嗁徥裁磮D書,這就涉及到圖書類,即包含了圖書類。聚合與依賴關(guān)系的不同在于,訂單類可以不擁有所有賬戶類對(duì)象,但是必須擁有所有圖書類對(duì)象,因?yàn)閳D書類的對(duì)象是訂單的主要目的,如下圖所示:

繼承

繼承就是一個(gè)類能調(diào)用另一個(gè)類的所有數(shù)據(jù)成員,并在當(dāng)前類中不需要再重新定義,本章已經(jīng)講得很明白了。

相關(guān)文章

  • java8?Stream大數(shù)據(jù)量List分批處理切割方式

    java8?Stream大數(shù)據(jù)量List分批處理切割方式

    這篇文章主要介紹了java8?Stream大數(shù)據(jù)量List分批處理切割方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • java中CopyOnWriteArrayList源碼解析

    java中CopyOnWriteArrayList源碼解析

    為了將讀取的性能發(fā)揮到極致,jdk中提供了CopyOnWriteArrayList類,下面這篇文章主要給大家介紹了關(guān)于java中CopyOnWriteArrayList源碼解析的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • 使用IDEA如何導(dǎo)入SpringBoot項(xiàng)目

    使用IDEA如何導(dǎo)入SpringBoot項(xiàng)目

    這篇文章主要介紹了使用IDEA如何導(dǎo)入SpringBoot項(xiàng)目問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,
    2023-12-12
  • java開發(fā)之讀寫txt文件操作的實(shí)現(xiàn)

    java開發(fā)之讀寫txt文件操作的實(shí)現(xiàn)

    本篇文章介紹了,java開發(fā)之讀寫txt文件操作的實(shí)現(xiàn)。需要的朋友參考下
    2013-05-05
  • Mybatis的TypeHandler加解密數(shù)據(jù)實(shí)現(xiàn)

    Mybatis的TypeHandler加解密數(shù)據(jù)實(shí)現(xiàn)

    在我們數(shù)據(jù)庫中有些時(shí)候會(huì)保存一些用戶的敏感信息,所以就需要對(duì)這些數(shù)據(jù)進(jìn)行加密,那么本文就介紹了Mybatis的TypeHandler加解密數(shù)據(jù)實(shí)現(xiàn),感興趣的可以了解一下
    2021-06-06
  • Jmeter訪問需要登錄的接口如何處理問題

    Jmeter訪問需要登錄的接口如何處理問題

    這篇文章主要介紹了Jmeter訪問需要登錄的接口如何處理問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java?輕松掌握字符緩沖流的使用

    Java?輕松掌握字符緩沖流的使用

    這篇文章主要介紹了Java的字符緩沖流用法,字符緩沖流的用途很多,主要是幾個(gè)構(gòu)造方法的使用,在項(xiàng)目開發(fā)中經(jīng)常會(huì)用到,需要的朋友參考下吧
    2022-04-04
  • idea在運(yùn)行期間,實(shí)現(xiàn)讓修改的頁面實(shí)時(shí)生效

    idea在運(yùn)行期間,實(shí)現(xiàn)讓修改的頁面實(shí)時(shí)生效

    這篇文章主要介紹了idea在運(yùn)行期間,實(shí)現(xiàn)讓修改的頁面實(shí)時(shí)生效問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Springmvc工程跳轉(zhuǎn)controller無效的解決

    Springmvc工程跳轉(zhuǎn)controller無效的解決

    這篇文章主要介紹了Springmvc工程跳轉(zhuǎn)controller無效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • mybatis新手快速入門以及一些錯(cuò)誤匯總

    mybatis新手快速入門以及一些錯(cuò)誤匯總

    這篇文章主要給大家介紹了關(guān)于mybatis新手快速入門以及一些錯(cuò)誤的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評(píng)論