<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # OOP 概念 - 什么是 java 中的聚合? > 原文: [https://beginnersbook.com/2013/05/aggregation/](https://beginnersbook.com/2013/05/aggregation/) 聚合是一種特殊的關聯形式。它是[關聯](https://beginnersbook.com/2013/05/association/)這兩個類之間的關系,然而它是**方向**關聯,這意味著它嚴格地是**單向關聯。** 它代表 **HAS-A** 的關系。 ## Java 中的聚合示例 例如,考慮兩個類`Student`類和`Address`類。每個學生都有一個地址,所以學生和地址之間的關系是一個 Has-A 關系。但如果你認為反之亦然那么它就沒有任何意義,因為`Address`不一定需要`Student`。讓我們在 java 程序中編寫這個例子。 `Student Has-A Address` ```java class Address { int streetNum; String city; String state; String country; Address(int street, String c, String st, String coun) { this.streetNum=street; this.city =c; this.state = st; this.country = coun; } } class StudentClass { int rollNum; String studentName; //Creating HAS-A relationship with Address class Address studentAddr; StudentClass(int roll, String name, Address addr){ this.rollNum=roll; this.studentName=name; this.studentAddr = addr; } public static void main(String args[]){ Address ad = new Address(55, "Agra", "UP", "India"); StudentClass obj = new StudentClass(123, "Chaitanya", ad); System.out.println(obj.rollNum); System.out.println(obj.studentName); System.out.println(obj.studentAddr.streetNum); System.out.println(obj.studentAddr.city); System.out.println(obj.studentAddr.state); System.out.println(obj.studentAddr.country); } } ``` 輸出: ```java 123 Chaitanya 55 Agra UP India ``` 上面的例子顯示了`Student`和`Address`類之間的 **聚合** 。你可以看到在`Student`類中我已經聲明了一個`Address`類型的屬性來獲取學生地址。它是 Java 中聚合的典型示例。 ## 為什么我們需要聚合? **維護代碼重用性**。要理解這一點,請再次使用相同的示例。假設還有另外兩個類`College`和`Staff`以及上面兩個類`Student`和`Address`。為了保持學生的地址,學院地址和工作人員的地址,我們不需要一次又一次地使用相同的代碼。我們只需要在定義每個類時使用`Address`類的引用,如: ```java Student Has-A Address (Has-a relationship between student and address) College Has-A Address (Has-a relationship between college and address) Staff Has-A Address (Has-a relationship between staff and address) ``` 因此,我們可以通過使用聚合關系來提高代碼的可重用性。 所以,如果我必須在一個程序中寫這個,我會這樣做: ```java class Address { int streetNum; String city; String state; String country; Address(int street, String c, String st, String coun) { this.streetNum=street; this.city =c; this.state = st; this.country = coun; } } class StudentClass { int rollNum; String studentName; //Creating HAS-A relationship with Address class Address studentAddr; StudentClass(int roll, String name, Address addr){ this.rollNum=roll; this.studentName=name; this.studentAddr = addr; } ... } class College { String collegeName; //Creating HAS-A relationship with Address class Address collegeAddr; College(String name, Address addr){ this.collegeName = name; this.collegeAddr = addr; } ... } class Staff { String employeeName; //Creating HAS-A relationship with Address class Address employeeAddr; Staff(String name, Address addr){ this.employeeName = name; this.employeeAddr = addr; } ... } ``` 正如您所看到的,我們沒有在三個類中的任何一個中編寫`Address`代碼,我們只是使用`Address`類創建了 HAS-A 關系以使用`Address`代碼。上面代碼中的點點(...)部分可以用`public static void main`方法替換,其中的代碼與我們在第一個例子中看到的類似。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看