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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Java 靜態嵌套類 > 原文: [https://www.programiz.com/java-programming/static-class](https://www.programiz.com/java-programming/static-class) #### 在本教程中,您將借助示例學習嵌套的靜態類。 您還將了解靜態類與內部類之間的區別。 如之前的教程所述,我們可以在 Java 的另一個類中包含一個類。 這樣的類稱為嵌套類。 在 Java 中,嵌套類有兩種類型: * 嵌套的非靜態類(內部類) * 嵌套的靜態類。 在上一教程中,我們已經討論了內部類。 如果您想了解內部類,請訪問 [Java 嵌套類](https://www.programiz.com/java-programming/nested-inner-class)。 在本教程中,我們將學習靜態嵌套類。 * * * ## Java 靜態嵌套類 我們使用關鍵字`static`使我們的嵌套類靜態化。 **注意**:在 Java 中,僅允許嵌套類為靜態。 與常規類一樣,靜態嵌套類可以包含靜態和非靜態字段和方法。 例如, ```java Class Animal { static class Mammal { // static and non-static members of Mammal } // members of Animal } ``` 靜態嵌套類與外部類相關聯。 要訪問靜態嵌套類,我們不需要外部類的對象。 * * * ### 示例:靜態嵌套類 ```java class Animal { // inner class class Reptile { public void displayInfo() { System.out.println("I am a reptile."); } } // static class static class Mammal { public void displayInfo() { System.out.println("I am a mammal."); } } } class Main { public static void main(String[] args) { // object creation of the outer class Animal animal = new Animal(); // object creation of the non-static class Animal.Reptile reptile = animal.new Reptile(); reptile.displayInfo(); // object creation of the static nested class Animal.Mammal mammal = new Animal.Mammal(); mammal.displayInfo(); } } ``` **輸出** ```java I am a reptile. I am a mammal. ``` 在上面的程序中,我們在類`Animal`中有兩個嵌套類`Mammal`和`Reptile`。 為了創建非靜態類`Reptile`的對象,我們使用了 ```java Animal.Reptile reptile = animal.new Reptile() ``` 要創建靜態類`Mammal`的對象,我們使用了 ```java Animal.Mammal mammal = new Animal.Mammal() ``` * * * ## 訪問外層成員 在 Java 中,靜態嵌套類與外部類相關聯。 這就是為什么靜態嵌套類只能訪問外部類的類成員(靜態字段和方法)的原因。 讓我們看看如果嘗試訪問外部類的非靜態字段和方法會發生什么。 ### 示例:訪問非靜態成員 ```java class Animal { static class Mammal { public void displayInfo() { System.out.println("I am a mammal."); } } class Reptile { public void displayInfo() { System.out.println("I am a reptile."); } } public void eat() { System.out.println("I eat food."); } } class Main { public static void main(String[] args) { Animal animal = new Animal(); Animal.Reptile reptile = animal.new Reptile(); reptile.displayInfo(); Animal.Mammal mammal = new Animal.Mammal(); mammal.displayInfo(); mammal.eat(); } } ``` **輸出**: ```java Main.java:28: error: cannot find symbol mammal.eat(); ^ symbol: method eat() location: variable mammal of type Mammal 1 error compiler exit status 1 ``` 在上面的示例中,我們在類`Animal`中創建了一個非靜態方法`eat()`。 現在,如果我們嘗試使用對象`Mammal`訪問`eat()`,則編譯器將顯示錯誤。 這是因為`Mammal`是靜態類的對象,我們無法從靜態類訪問非靜態方法。 * * * ## 靜態頂級類 如上所述,只有嵌套類可以是靜態的。 我們不能有靜態的頂級類。 讓我們看看如果嘗試使頂級類靜態化會發生什么。 ```java static class Animal { public static void displayInfo() { System.out.println("I am an animal"); } } class Main { public static void main(String[] args) { Animal.displayInfo(); } } ``` **輸出**: ```java Main.java:1: error: modifier static not allowed here static class Animal { ^ 1 error compiler exit status 1 ``` 在上面的示例中,我們嘗試創建一個靜態類`Animal`。 由于 Java 不允許使用靜態頂級類,因此會出現錯誤。
                  <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>

                              哎呀哎呀视频在线观看