您好,登錄后才能下訂單哦!
java中什么指的是聚合?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
java中聚合是一種特殊的關(guān)聯(lián)形式,它是兩個(gè)類之間的關(guān)系,是一種HAS-A關(guān)系,是一種單向關(guān)聯(lián)。如果類具有實(shí)體引用,則稱為聚合。
舉個(gè)例子:在一個(gè)有這么兩個(gè)類Studentclass和Addressclass,它們分別代表學(xué)生和地址。Studentclass類中包含有許多信息,比如:studentId、studentName等等,還包含一個(gè)Addressclass類。其中Addressclass類中有擁有自己的信息,如國家,省會(huì),城市等。如下所示:
class Address { String country; String province; String city; ..... } class StudentClass { int studentId; String studentName; //創(chuàng)建與Addressclass類的HAS-A關(guān)系 Address studentAddr; StudentClass(int id, String name, Address addr){ ...... } }
在這種情況下,Studentclass類具有實(shí)體引用Addressclass類;且
每個(gè)學(xué)生都有具體一個(gè)地址,所以學(xué)生和地址之間的關(guān)系是一個(gè)Has-A關(guān)系,即:Student Has-A Address
為什么要使用聚合?
因?yàn)榭梢跃S護(hù)代碼的可重用性。
打個(gè)比方,在上例的兩個(gè)類Student和Address的基礎(chǔ)上,還有用了另外兩個(gè)類College,Staff,它們代表學(xué)院和工作人員。
為了讓學(xué)生、學(xué)院地址和工作人員都具有地址,現(xiàn)在,我們不需要一次又一次地使用相同的代碼;我們只需要在定義每個(gè)類時(shí)引用Address類就行。
因此,我們可以通過使用聚合關(guān)系來提高代碼的可重用性。
聚合示例
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(); } }
效果圖:
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)java中什么指的是聚合大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。