什麼是 Java 中的組合以及示例

已發表: 2022-11-19

Java 編程語言的多功能性允許代碼重用,同時減少類之間的重複性。 Java 通過在類之間建立關係來促進代碼的可重用性,這些關係有兩種類型:繼承和關聯。 雖然繼承讓我們實現一種是一種關係並從現有類創建一個新類,但關聯或具有一種關係可確保代碼的可重用性。

has-a關係又分為兩類: Java中的聚合和組合 本文將探討Java 中組合的概念,並通過示例幫助您理解其基礎知識。

目錄

Java 關係概述

Java 中的關係是指類相關的不同方式。 從廣義上講,Java 中有兩種類型的關係:

  • 是一個關係
  • 有關係

Java 中的組合

資源

是一種關係(繼承)

Java 中的繼承特性讓我們可以實現 is-a 關係。 在這種情況下,一個類繼承了另一個類。 例如,如果類“Flower”繼承了另一個類“Lily”,我們可以說類“Lily”與“Flower”具有 is-a 關係。 這也暗示百合是一朵花。

示例:百合“是”花,計算機“是”設備,等等。

有關係(Association)

has-a關係表示一個類使用另一個類的實例,這種關係在Java中稱為關聯。 例如,如果類 P 持有另一個類 Q 的引用,則意味著 P 可以訪問類 Q 的所有屬性。

示例:計算機“有”處理器,蜜蜂“有”刺等。

Java 中的關聯是使用其對象的兩個離散類之間的關係。 關係可以是以下類型:

  • 一對多:一個對象關聯多個對象。
  • 一對一:一個對象與一個對象關聯。
  • 多對多:許多對象與其他多個對象相關聯。
  • 多對一:許多對象與一個對象相關聯。

關聯有兩種類型:聚合和組合。

Java 中的組合

Java 中的組合是一種實現類之間 has-a 關係的設計技術。 在這個關聯中,一個類包含另一個類。 而且,被包含類依賴於包含類,不能獨立存在。 換句話說,一個類包含另一個具有相互依賴功能的類。

例如,類“Car”包含類“Engine”和“Battery”。 因此,'Car'與'Engine'和'Battery'處於has-a關係中,後兩者不能在沒有'Car'的情況下獨立存在。

讓我們考慮另一個現實生活中的例子。 人體有腎,器官離不開人體。 因此,如果我們認為“Human”是一個與“Kidneys”類具有關係的類,那麼在 Java 示例中它就是組合,因為沒有人體,腎臟不能獨立存在。

upGrad 為您舉辦的獨家軟件開發網絡研討會 –

SAAS 業務——有何不同?

在 Java 示例中實現組合

現在考慮以下演示Java 中組合概念的程序 我們將把它分解成幾個步驟以便更好地理解。

第 1 步:在第一步中,我們將創建一個類“Car”並聲明和定義方法和數據成員。

類車

{

// 聲明數據成員和方法

私有字符串顏色;

私有速度;

公共無效carFeatures()

{

System.out.println(“汽車顏色=”+顏色+”最大速度=”+速度);

}

public void setColor(字符串顏色)

{

this.color = 顏色;

}

public void setspeed(int 速度)

{

this.speed = 速度;

}

}

第 2 步:接下來,我們將創建一個擴展上述類“Car”的類“Fiat”。 “Fiat”類通過組合使用 FiatEngine 類對象的 start() 方法,這意味著“Fiat”類“有一個”FiatEngine。 菲亞特是一輛汽車,所以它從類“汽車”延伸而來。

類菲亞特擴展汽車

{

//繼承Car類的所有屬性

公共無效設置開始()

{

FiatEngine e = new FiatEngine();

e.開始();

}

}

第 3 步:在 Java 組合程序的下一步中,我們將創建一個類 FiatEngine,通過它我們可以使用上麵類“Fiat”中的類對象。

FiatEngine類

{

公共無效開始()

{

System.out.println(“引擎已經啟動。”);

}

公共無效停止()

{

System.out.println(“引擎已停止。”);

}

}

第 4 步:在程序的最後一步,我們將創建一個類 CompositionExample,創建一個“Fiat”類的對象,並對其進行初始化。

類 CompositionExample

{

public static void main(String[] args)

{

菲亞特 f = 新菲亞特 ();

f.setColor(“黑色”);

f.setspeed(175);

f.carFeatures();

h.setStart();

}

}

輸出:

汽車顏色= 黑色最高速度= 175

引擎已經啟動。

從世界一流大學在線學習軟件開發課程。 獲得執行 PG 課程、高級證書課程或碩士課程,以快速推進您的職業生涯。

Java 中的聚合和組合

Java中的聚合和組合是兩種 has-a 關係,兩者在類之間的依賴性方面有所不同。 在聚合中,容器類和引用類是獨立存在的,而組合引用類沒有容器類就不存在了。 因此,引用類在組合上依賴於它的容器類。

這是一個真實的例子來理解Java 中聚合和組合之間的區別 汽車有發動機、剎車、電池、前燈、音樂播放器等各種部件。雖然汽車可以在沒有音樂播放器的情況下運行,但如果沒有發動機或電池等重要部件,它就無法運行。 因此,我們可以說汽車和音樂播放器是聚合關係,而引擎和汽車是組合關係。

在 Java 中使用組合有什麼好處?

現在您已經對 Java 中的組合概念有了基本的了解,下面概述了這種技術的好處:

  • Java 中的組合有助於代碼的可重用性。
  • Java 中的組合讓我們可以控制其他對像對客戶端類的可見性並重用我們需要的東西。
  • 雖然 Java 不支持多重繼承,但我們可以使用組合來解決它。
  • Java 中的組合是靈活的,允許我們在運行時更改成員對像以改變程序的行為。
  • Java 組合提供了更好的類可測試性,這是一個在測試驅動開發中特別有用的特性。
  • 基於組合的設計具有更少的類。

軟件工程熱門課程和文章

熱門節目
軟件開發執行 PG 課程 - IIIT B 區塊鏈證書課程 - PURDUE 網絡安全證書計劃 - 普杜 計算機科學碩士 - IIIT B
其他熱門文章
2021-22 年美國雲工程師薪資 AWS 解決方案架構師在美國的薪水 美國的後端開發人員薪水 美國的前端開發人員薪水
Web開發人員在美國的薪水 2022 年 Scrum Master 面試問題 如何在 2022 年開始網絡安全職業? 工程專業學生在美國的職業選擇

結論

如果類之間的關係是 has-a 並且您希望重用代碼,那麼Java 中的組合是一項出色的技術。 總而言之,以下是您需要記住的有關 Java 組合的一些要點:

  • Java 中的組合表示一種 has-a 關係。
  • 在組合中,一個類包含另一個類,被包含類依賴於包含類,不能獨立存在。
  • 組合關聯中的兩個實體相互依賴。
  • 我們可以通過引用其他對象的實例變量來實現 Java 中的組合。

通過 upGrad 的 Executive PG Program in Software Development 提升您的職業生涯

軟件開發是年輕專業人士最賺錢的職業選擇之一。 如果您已經在該行業工作或希望開始,您必須註冊 upGrad 的軟件開發執行 PG 計劃 該計劃向您傳授熱門技能以及十種收入最高的編碼語言和工具。 您可以從四個專業中進行選擇,包括區塊鏈開發、全棧開發、DevOps 和雲後端開發。

除了學習收入最高的編程語言外,您還可以從事 30 多個案例研究和項目。 世界一流的教職員工為該課程提供現場講座和在線課程。 全天候提供學生支持。

立即申請,儘早獲得課程錄取資格!

Java中的組合和繼承是什麼?

Java 中的組合和繼承是在對象和類之間建立關係的兩種編程技術。 組合表示與一個類包含另一個類的關係。 另一方面,繼承表現出一種 is-a 關係,其中一個類獲取另一個類的屬性和行為。

Java 中組合的目的是什麼?

Java 中的組合允許代碼可重用性並提供更好的類可測試性。 儘管 Java 不支持多重繼承,但組合提供了一種方法。

組合是 OOP 嗎?

組合是面向對象編程中的一個基本概念。 它描述了一種 has-a 關係,其中一個類通過實例變量引用其他類的一個或多個對象。