首頁 >Java >java教程 >java中聚合是什麼

java中聚合是什麼

青灯夜游
青灯夜游原創
2018-12-15 11:45:367541瀏覽

java中聚合是一種特殊的關聯形式,它是兩個類別之間的關係,是一種HAS-A關係,是一種單向關聯。如果類別具有實體引用,則稱為聚合。

java中聚合是什麼

舉例:在一個有這麼兩個類別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中聚合是什麼

總結:以上就是本篇文章的全部內容,希望對大家的學習有所幫助。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn