首頁 > Java > java教程 > 主體

Java 中的組合和聚合

王林
發布: 2024-08-30 15:15:15
原創
1047 人瀏覽過

Java 提供了可以被視為現實生活和程式設計的物件之間的不同關係。有時候很難理解,或者我們可以說是實現關係。所以java向使用者提供了組合和聚合關係。在組合中,我們可以建立一種我們稱之為「屬於」的關係;從邏輯上講,我們可以說一個物體比其他物體大。在聚合中,我們可以建構一種稱為「has a」關係的關係,其中每個物件都彼此獨立地運作。我們認為聚合關係是弱關聯,而組合關係是我們認為強關聯。

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

組合和聚合的語法

組合語法如下:

public class building {
private final Room room;
public building () {
room = new room ();
}
}
class Room { }
登入後複製

說明:

  • 在上面的語法中,我們考慮了一個建築的例子,所以首先,我們創建一個名為building的類,房間是建築的強制性部分,如上面的語法所示。
  • 這是組合關係的語法,這裡我們展示它屬於關係。

聚合語法如下:

public class student {
private List students;
public student () {
students = new list_students();
}
}
class student { }
登入後複製

說明:

  • 在上面的語法中,我們考慮學生範例,其中首先我們建立一個名為學生的公共班級,然後,我們建立學生列表,因為學生可以是 0 或更多,如下所示以上文法。
  • 這裡我們也展示了物件之間的「has a」關係。

Java 中組合和聚合如何運作?

下面顯示了組合和聚合在 Java 中的工作原理:

組合用於指定關係的「屬於」。這意味著其中一個項目在智慧上比其他項目更大,或者我們可以說對象。例如,將房間視為建築物的一部分,或者我們可以說建築物有一個房間。所以從根本上來說,無論我們稱之為「屬於」還是「有一個」都只是一個視角問題。

基本上,根據包含物件聲明它的事實,組合是一種很強的關係。這樣,當我們刪除物件生命週期時,就表示當我們刪除父節點時,它會自動刪除子節點。例如,我們可以考慮何時破壞房間;然後建築物也被摧毀。請注意,這並不意味著包含物件不能與其任何部分一起存在。例如,我們可以摧毀建築物內的所有隔板,從而消除房間。不管怎樣,這種結構無論如何都會存在。就基數而言,包含文章可以根據需要包含任意多個部分。儘管如此,整個零件必須有一個精確的隔間。

聚合在 Java 中的工作原理如下:

我們知道構圖「有」關係。同樣,聚合也有「Has a」關係。基本區別在於聚合確實包含父節點或物件。在這種關係中,每個物件都是相互獨立的。例如,我們可以考慮一輛汽車及其不同的車輪,我們可以將同一個車輪安裝到另一輛車上,然後它的工作文件沒有任何問題。我們知道沒有輪子的汽車是沒有用的,所以這就是我們組裝物件的所有部分的原因,這就是聚合關係。

Java 中的組合和聚合範例

下面給出組合和聚合關係的範例:

範例#1:組合

代碼:

import java.io.*;
import java.util.*;
class Lib
{
public String name_book;
public String bk_author;
Lib(String name_book, String bk_author)
{
this.name_book = name_book;
this.bk_author = bk_author;
}
}
class Library
{
private final List<Lib> Lib_books;
Library (List<Lib> Lib_books)
{
this.Lib_books =Lib_books;
}
public List<Lib> book_details(){
return Lib_books;
}
}
class composition
{
public static void main (String[] args)
{
Lib book1 = new Lib("Database management", "Rajiv Chopra ");
Lib book2 = new Lib("MySql", "Rajiv Chopra l");
Lib book3 = new Lib("oracle", "Donald Burleson");
List<Lib> Lib_books = new ArrayList<Lib>();
Lib_books.add(book1);
Lib_books.add(book2);
Lib_books.add(book3);
Library library = new Library(Lib_books);
List<Lib> bks = library.book_details();
for(Lib bk : bks){
System.out.println("name_book : " + bk.name_book + " and "
+" bk_author : " + bk.bk_author);
}
}
}
登入後複製

說明:

  • 在上面的例子中,我們嘗試用java實現組合關係。
  • 我們使用以下快照來說明上述程式的最終輸出。

輸出:

Java 中的組合和聚合

範例#2:聚合關係

代碼:

import java.io.*;
import java.util.*;
class stud_class
{
String stud_name;
int roll_no ;
String stud_dept;
stud_class(String stud_name, int roll_no, String stud_dept)
{
this.stud_name = stud_name;
this.roll_no = roll_no;
this.stud_dept = stud_dept;
}
}
class Depofcollege
{
String stud_name;
private List<stud_class> students;
Depofcollege(String stud_name, List<stud_class> students)
{
this.stud_name = stud_name;
this.students = students;
}
public List<stud_class> getStudentsDetails()
{
return students;
}
}
class college
{
String collegeName;
private List<Depofcollege> departments;
college(String collegeName, List<Depofcollege> departments)
{
this.collegeName = collegeName;
this.departments = departments;
}
public int totalstudents()
{
int noOfStudents = 0;
List<stud_class> students;
for(Depofcollege dept : departments)
{
students = dept.getStudentsDetails();
for(stud_class s : students)
{
noOfStudents++;
}
}
return noOfStudents;
}
}
class aggregation
{
public static void main (String[] args)
{
stud_class stud1 = new stud_class("Sameer", 5, "IT");
stud_class stud2 = new stud_class("Pooja", 6, "IT");
stud_class stud3 = new stud_class("Sanddep", 8, "Mech");
stud_class stud4 = new stud_class("Jenny", 2, "Mech");
List <stud_class> i_students = new ArrayList<stud_class>();
i_students.add(stud1);
i_students.add(stud2);
List <stud_class> me_students = new ArrayList<stud_class>();
me_students.add(stud3);
me_students.add(stud4);
Depofcollege IT = new Depofcollege("IT", i_students);
Depofcollege Mech = new Depofcollege("Mech", me_students);
List <Depofcollege> departments = new ArrayList<Depofcollege>();
departments.add(IT);
departments.add(Mech);
college college= new college("MIT", departments);
System.out.print("Count of students: ");
System.out.print(college.totalstudents());
}
}
登入後複製

說明:

  • 在上面的例子中,我們嘗試用java實現聚合關係。
  • 我們使用以下快照來說明上述程式的最終輸出。

輸出:

Java 中的組合和聚合

結論

我們從上面的文章中看到了組合和聚合的基本語法,也看到了組合和聚合的不同範例。從這篇文章中,我們了解如何以及何時使用 Java 中的組合和聚合。

以上是Java 中的組合和聚合的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!