Java 提供了可以被視為現實生活和程式設計的物件之間的不同關係。有時候很難理解,或者我們可以說是實現關係。所以java向使用者提供了組合和聚合關係。在組合中,我們可以建立一種我們稱之為「屬於」的關係;從邏輯上講,我們可以說一個物體比其他物體大。在聚合中,我們可以建構一種稱為「has a」關係的關係,其中每個物件都彼此獨立地運作。我們認為聚合關係是弱關聯,而組合關係是我們認為強關聯。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
組合語法如下:
public class building { private final Room room; public building () { room = new room (); } } class Room { }
說明:
聚合語法如下:
public class student { private List students; public student () { students = new list_students(); } } class student { }
說明:
下面顯示了組合和聚合在 Java 中的工作原理:
組合用於指定關係的「屬於」。這意味著其中一個項目在智慧上比其他項目更大,或者我們可以說對象。例如,將房間視為建築物的一部分,或者我們可以說建築物有一個房間。所以從根本上來說,無論我們稱之為「屬於」還是「有一個」都只是一個視角問題。
基本上,根據包含物件聲明它的事實,組合是一種很強的關係。這樣,當我們刪除物件生命週期時,就表示當我們刪除父節點時,它會自動刪除子節點。例如,我們可以考慮何時破壞房間;然後建築物也被摧毀。請注意,這並不意味著包含物件不能與其任何部分一起存在。例如,我們可以摧毀建築物內的所有隔板,從而消除房間。不管怎樣,這種結構無論如何都會存在。就基數而言,包含文章可以根據需要包含任意多個部分。儘管如此,整個零件必須有一個精確的隔間。
聚合在 Java 中的工作原理如下:
我們知道構圖「有」關係。同樣,聚合也有「Has a」關係。基本區別在於聚合確實包含父節點或物件。在這種關係中,每個物件都是相互獨立的。例如,我們可以考慮一輛汽車及其不同的車輪,我們可以將同一個車輪安裝到另一輛車上,然後它的工作文件沒有任何問題。我們知道沒有輪子的汽車是沒有用的,所以這就是我們組裝物件的所有部分的原因,這就是聚合關係。
下面給出組合和聚合關係的範例:
代碼:
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); } } }
說明:
輸出:
代碼:
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 中的組合和聚合的詳細內容。更多資訊請關注PHP中文網其他相關文章!