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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## [包的概念](https://lingcoder.gitee.io/onjava8/#/book/07-Implementation-Hiding?id=%e5%8c%85%e7%9a%84%e6%a6%82%e5%bf%b5) 包內包含一組類,它們被組織在一個單獨的*命名空間*(namespace)下。 例如,標準 Java 發布中有一個工具庫,它被組織在**java.util**命名空間下。**java.util**中含有一個類,叫做**ArrayList**。使用**ArrayList**的一種方式是用其全名**java.util.ArrayList**。 ~~~ // hiding/FullQualification.java public class FullQualification { public static void main(String[] args) { java.util.ArrayList list = new java.util.ArrayList(); } } ~~~ 這種方式使得程序冗長乏味,因此你可以換一種方式,使用**import**關鍵字。如果需要導入某個類,就需要在**import**語句中聲明: ~~~ // hiding/SingleImport.java import java.util.ArrayList; public class SingleImport { public static void main(String[] args) { ArrayList list = new ArrayList(); } } ~~~ 現在你就可以不加限定詞,直接使用**ArrayList**了。但是對于**java.util**包下的其他類,你還是不能用。要導入其中所有的類,只需使用**\***,就像本書中其他示例那樣: ~~~ import java.util.* ~~~ 之所以使用導入,是為了提供一種管理命名空間的機制。所有類名之間都是相互隔離的。類**A**中的方法`f()`不會與類**B**中具有相同簽名的方法`f()`沖突。但是如果類名沖突呢?假設你創建了一個**Stack**類,打算安裝在一臺已經有別人所寫的**Stack**類的機器上,該怎么辦呢?這種類名的潛在沖突,正是我們需要在 Java 中對命名空間進行完全控制的原因。為了解決沖突,我們為每個類創建一個唯一標識符組合。 到目前為止的大部分示例都只存在單個文件,并為本地使用的,所以尚未受到包名的干擾。但是,這些示例其實已經位于包中了,叫做“未命名”包或*默認包*(default package)。這當然是一種選擇,為了簡單起見,本書其余部分會盡可能采用這種方式。但是,如果你打算為相同機器上的其他 Java 程序創建友好的類庫或程序時,就必須仔細考慮以防類名沖突。 一個 Java 源代碼文件稱為一個*編譯單元(compilation unit)*(有時也稱*翻譯單元(translation unit)*)。每個編譯單元的文件名后綴必須是**.java**。在編譯單元中可以有一個**public**類,它的類名必須與文件名相同(包括大小寫,但不包括后綴名**.java**)。每個編譯單元中只能有一個**public**類,否則編譯器不接受。如果這個編譯單元中還有其他類,那么在包之外是無法訪問到這些類的,因為它們不是**public**類,此時它們為主**public**類提供“支持”類 。
                  <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>

                              哎呀哎呀视频在线观看