java中聚合是一種特殊的關聯形式,它是兩個類別之間的關係,是一種HAS-A關係,是一種單向關聯。如果類別具有實體引用,則稱為聚合。
舉例:在一個有這麼兩個類別Studentclass和Addressclass,它們分別代表學生和位址。 Studentclass類別中包含有許多訊息,例如:studentId、studentName等等,也包含一個Addressclass類別。其中Addressclass類別中有擁有自己的訊息,如國家,省會,城市等。如下所示:
class Address { String country; String province; String city; ..... } class StudentClass { int studentId; String studentName; //创建与Addressclass类的HAS-A关系 Address studentAddr; StudentClass(int id, String name, Address addr){ ...... } }
在這種情況下,Studentclass類別具有實體引用Addressclass類別;且
每個學生都有具體一個位址,所以學生和地址之間的關係是一個Has-A關係,即:Student Has-A Address
為什麼要使用聚合?
因為可以維護程式碼的可重複使用性。
打個比方,在上例的兩個類別Student和Address的基礎上,還有用了另外兩個類別College,Staff,它們代表學院和工作人員。
為了讓學生、學院地址和工作人員都具有地址,現在,我們不需要一次又一次地使用相同的程式碼;我們只需要在定義每個類別時引用Address類別就行。
因此,我們可以透過使用聚合關係來提高程式碼的可重複使用性。
聚合範例
class Address { String country,province,city; public Address(String country, String province, String city) { this.country = country; this.province = province; this.city = city; } } public class StudentClass{ int id; String name; Address address; public StudentClass(int id, String name,Address address) { this.id = id; this.name = name; this.address=address; } void display(){ System.out.println("="+id+",name="+name); System.out.println("地址是: "+address.country+","+address.province+","+address.city+"\n"); } public static void main(String[] args) { Address address1=new Address("China","Hubei","Wuhan"); Address address2=new Address("China","Hunan","Changsha"); StudentClass Student1=new StudentClass(150,"小明",address1); StudentClassStudent2=new StudentClass(151,"小华",address2); Student1.display(); Student2.display(); } }
效果圖:
總結:以上就是本篇文章的全部內容,希望對大家的學習有所幫助。
以上是java中聚合是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!