<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 在 15 分鐘內學習 Java 9 模塊 > 原文: [https://beginnersbook.com/2018/09/java-9-modules/](https://beginnersbook.com/2018/09/java-9-modules/) 在本文中,我們將學習 Java 9 最重要的特性 - [“**Java 9 模塊**”](https://beginnersbook.com/2018/04/java-9-features-with-examples/)。我們將涵蓋所有內容,例如我們需要模塊的原因,什么是模塊,如何在 Java 中創建和使用模塊。讓我們開始吧。 #### 關于模塊的小背景 **Java 模塊系統**是 Java 早就應該實現的。模塊系統是 Jigsaw 計劃的一部分,最初計劃在 Java SE 7 中發布但延遲并推遲到 Java SE 8 發布,但又因為它是一個巨大而有聲望的項目,它已經從 Java SE8 推遲發布并最終在 **Java SE 9** 中發布。** 在下一節中,我將從基礎知識中進行解釋,以便每個人都能理解模塊的需求。您可能會發現它是一個巨大的文本墻,但我向您保證,如果您仔細閱讀它,您將能夠理解模塊背后的原因和想法。 ## 為什么我們需要 Java 中的模塊? java 最重要的特性是可重用性,它允許我們在[繼承](https://beginnersbook.com/2013/03/inheritance-in-java/)和[接口](https://beginnersbook.com/2013/05/java-interface/)的幫助下重用我們創建的類。我們可以在繼承的幫助下繼承類的行為,并且可以使用接口繼承抽象。 為了有效地重用這些類,java 將它們分組在[包](https://beginnersbook.com/2013/03/packages-in-java/)中,并且它以這樣的方式完成,以便類似類型的類在單個包中。對于例如當我們處理[集合](https://beginnersbook.com/java-collections-tutorials/)時,我們需要的大多數類和接口都在`java.util`包中。 隨著我們的代碼大小的增加,java 中的包也增加了。想象一下,使用數百個包來處理一個非常大的程序,在這種情況下,很難理解哪些類正在使用什么。包是組織類的好方法,但**我們需要在代碼中使用包時組織它們**。 此外,使類可以在包之間重用的唯一方法是將其公開,當我們公開它時,任何人都可以使用它。這也需要解決。 **Java 9** 引入了一個很酷的新功能來解決我們上面討論過的問題。它引入了一個名為“模塊”的新功能。 **“模塊是一組包”**。模塊不僅可以組織包,還可以處理可訪問性,以便可以使用我們想要重用的模塊的部分,以及我們不想重用的部分,不能重復使用。 直到現在我們在理論上討論了所有內容,讓我們在代碼和圖表的幫助下討論模塊。 ## 什么是 Java 9 模塊? 模塊是一組包。我們在一個模塊中有兩種類型的包 - 1)導出的包 2)隱藏的包。 **導出的軟件包:**這些軟件包旨在在模塊外部使用,這意味著任何其他模塊中的任何程序都可以使用這些軟件包。 **隱藏包:**這些包不在外面使用,它們在模塊內部,只能在模塊內部使用。 ![Java 9 Module](https://img.kancloud.cn/81/db/81dbdc0a74919ff27d41f185cf24ea56_436x313.jpg) 為了進一步理解導出包和隱藏包的概念,我們舉一個`java.base`模塊的例子。 讓我們借助下圖了解這一點。在下圖中,`java.base`中的綠色塊表示“導出的包”,有幾個導出的包,但我只提到了其中的一些。綠色塊中提到的這些包可以由外部類使用。 黃色塊中的包裝是隱藏包裝,在模塊外部無法訪問。這些包僅用于模塊內部。 在 java 中我們在`module-info.java`文件中定義模塊,并提及任何包作為導出包我們在`export`關鍵字之后提到包的名稱,如右側所示(灰色)在下圖中阻止。 ![Module in Java 9 - exported packages & concealed packages](https://img.kancloud.cn/ae/be/aebe1bd267deaa981c680cbbc340db35_700x400.jpg) 讓我們在 Eclipse IDE 中編寫程序并使用模塊的概念。 ## Java 9 模塊 - 在 Eclipse IDE 中創建和使用模塊 我們將在一個模塊中創建一個類,并在另一個模塊中使用該類。 #### 1.創建 Java 項目 ![New Project in Java 9](https://img.kancloud.cn/6b/ae/6bae814494f981a52ffe3355f7214ed3_1024x193.jpg) 我們正在 Eclipse IDE 中創建一個 java 項目。我們使用的項目名稱是`beginnersbook.demo`。 #### 2.創建`module-info.java`文件 創建項目后,右鍵單擊項目名稱,轉到`Configure`選項,然后單擊`create module-info.java`選項如下截圖所示。給出與項目名稱`beginnersbook.demo`相同的模塊名稱。 ![Create module-info.java file in Eclipse IDE](https://img.kancloud.cn/14/8a/148a3b66c6b2f9f8f8372558e2e4e4cc_933x1024.jpg) 現在請將文件留空。我們稍后會來。 #### 3.創建包和類 我們在這個模塊中創建了一個類,我們將在另一個模塊中使用這個類。我們正在`beginnersbook.demo`包中創建一個類`BeginnersBook`。 `BeginnersBook`類的源代碼: ```java package beginnersbook.demo; public class BeginnersBook { public String welcomeMessage() { return "Welcome to BeginnersBook"; } } ``` #### 4.導出我們創建的包 由于我們計劃在另一個模塊中使用`BeginnersBook`類,因此我們可以將此包導出,以便可以在模塊外部使用。為此,請在`module-info.java`文件: ![module-info.java file](https://img.kancloud.cn/7a/b1/7ab1991e022e5b12a4a6f6c3827df5f4_572x200.jpg)中編寫此代碼 ```java module beginnersbook.demo { exports beginnersbook.demo; } ``` **項目`beginnersbook.demo`的最終結構如下:** ![Project Structure in Java 9 after creating module-info.java file](https://img.kancloud.cn/96/f6/96f68491fe3b889ccda9c3a2dd33c072_712x210.jpg) #### 5.讓我們創建另一個模塊 讓我們創建一個新的 java 項目,將其命名為`beginnersbook.user`,并按照我們上面創建的方式創建`module-info.java`文件,并將其命名為`beginnersbook.user`。該項目的`module-info.java`文件包含以下代碼: ```java //module-info.java file module beginnersbook.user { exports beginnersbook.user; requires beginnersbook.demo; } ``` 由于我們計劃使用`beginnersbook.demo`包,因此我們在`require`關鍵字后面提到了包名,如上面的代碼所示。 注意:您很可能會收到一條錯誤消息,指出包名稱未解析,這是因為其他模塊不在構建路徑中。要解決此錯誤,請右鍵單擊項目`beginnersbook.user`,轉到`Build Path -> 配置構建路徑`,如以下屏幕截圖所示: ![Build Path - Modules in Java9](https://img.kancloud.cn/5f/30/5f3060910ad3cb31020fc31cc7ac4957_1024x641.jpg) 轉到`Projects`選項卡,單擊`Modulepath`,然后單擊右側的`Add`按鈕,添加我們創建的上一個 java 項目`beginnersbook.demo`。你的最終屏幕應如下所示: ![Add Project to the Module Path - Java 9 Eclipse Oxygen](https://img.kancloud.cn/e2/f9/e2f94f9ed9e1eb8dde33ac22db72ff79_1024x379.jpg) 您的錯誤現在應該得到解決。 #### 6.讓我們在第二個模塊中創建一個類 在包含`beginnersbook.user`包的項目中創建一個類`BeginnersBookUser`。 `BeginnersBookUser`類的源代碼: ```java package beginnersbook.user; import beginnersbook.demo.BeginnersBook; public class BeginnersBookUser { public static void main (String arg[]) { BeginnersBook obj = new BeginnersBook(); System.out.println(obj.welcomeMessage()); } } ``` **兩個項目的最終結構如下:** ![Java 9 Module Final project structure](https://img.kancloud.cn/eb/7a/eb7a142597ed86e137441dc144f2bf7f_716x406.jpg) #### 7.最后一步 讓我們運行`BeginnersBookUser`類,你應該得到以下輸出: ```java Welcome to BeginnersBook ``` 多數民眾贊成。為了簡要說明,我們在模塊中創建了一個類并導出了包,以便可以在模塊外部使用該類。 為了測試它,我們在另一個模塊中創建了另一個類,并使用了導出的包,最后使用了我們首先創建的類。
                  <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>

                              哎呀哎呀视频在线观看