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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 內部類 > 原文: [https://javabeginnerstutorial.com/core-java-tutorial/inner-class/](https://javabeginnerstutorial.com/core-java-tutorial/inner-class/) Java 內部類是類中的類。 內部類實例與外部類具有特殊關系。 這種特殊的關系使內部類可以訪問外部類的成員,就好像它們是外部類的一部分一樣。 ###### 注意:Java 內部類實例可以訪問外部類的所有成員(公開,私有和受保護) ## 創建內部類的語法 ```java //outer class class OuterClass { //inner class class InnerClass { } } ``` ## 內部類的類型 * 靜態 * 方法局部 * 匿名 * 除了這些正常的內部類之外 ## 普通內部類 非方法局部,靜態方法或匿名方法的內部類是普通內部類。 ```java //outer class class OuterClass { //inner class class InnerClass { } } ``` 如果編譯以上代碼,它將生成兩個類文件。 ```java outer.class inner$outer.class ``` ###### 注意:您無法使用`java`命令直接執行內部類的`.class`文件。 由于它不是靜態內部類,因此我們不能對其使用`static`關鍵字。 ## 如何訪問內部類 內部類只能通過外部類的活動實例進行訪問。 ### 通過外部類 外部類可以以與普通類成員相同的方式創建內部類的實例。 ```java class OuterClass { private int i = 9; // Creating instance of inner class and calling inner class function public void createInner() { InnerClass i1 = new InnerClass(); i1.getValue(); } // inner class declarataion class InnerClass { public void getValue() { // accessing private variable from outer class System.out.println("value of i -" + i); } } } ``` ### 從外部類外面 創建一個外部類實例,然后創建內部類實例。 ```java class MainClass { public static void main(String[] args) { // Creating outer class instance OuterClass outerclass = new OuterClass(); // Creating inner class instance OuterClass.InnerClass innerclass = outerclass.new InnerClass(); // Classing inner class method innerclass.getValue(); } } ``` 上面的代碼也可以替換為 ```java OuterClass.InnerClass innerClass = new OuterClass.new InnerClass(); ``` ### `this`關鍵字 有一些與[相關的規則](https://javabeginnerstutorial.com/core-java-tutorial/this-keyword-java/),它引用當前正在執行的對象。 因此,在內部類中,“`this`”關鍵字將引用當前正在執行的內部類對象。 但是要獲取外部類的代碼,請使用“`OuterClass.this`”。 ### 應用的修飾符 普通內部類將被視為外部類的成員,因此與類相反,它可以具有多個[修飾符](https://javabeginnerstutorial.com/core-java-tutorial/non-access-modifiers-in-java/)。 + `final` + `abstract` + `public` + `private` + `protected` + `strictfp` 注意:不要與“類”和“內部類”的修飾符混淆。 他們是完全不同的。 ## 方法局部內部類 當在外部類的方法內部定義內部類時,它將成為方法局部內部類。 ### 用于創建方法局部內部類的語法 ```java class OuterClass { private int i = 9; // Creating instance of inner class and calling inner class function public void innerMethod() { // inner class declarataion inside method class InnerClass { public void getValue() { // accessing private variable from outer class System.out.println("value of i -" + i); } } //inner class instance creation InnerClass i1 = new InnerClass(); i1.getValue(); } } ``` 現在,內部類的定義位于外部類的方法內部。 仍然可以創建外部類的實例,但是只能在定義內部類之后才能創建,如上面所示。 ###### 注意: * 方法局部內部類可以在定義它的方法內實例化,而不能在其他地方實例化。 * 方法本地內部類不能使用在其 ID 定義的方法中定義的變量,但仍可以使用實例變量。 * 如果方法局部變量是“最終的”,則方法局部內部類可以使用它。 (現在變量是最終的) ### 應用于方法局部內部類的修飾符 方法局部內部類可以使用修飾符(例如局部變量),因此方法局部內部類可以具有`final`或`abstract`。 ## 備忘單 * **內部類**是包含在*類*中的成員。 * **外部類**引用需要啟動內部類。 * 內部類有 4 種類型。 * 在方法內定義的內部類是方法局部內部類。 * 方法局部內部類不能訪問方法局部變量。 * `final`和`abstract`是可用于方法內部內部類的唯一修飾符。 * 匿名內部類沒有任何名稱。 * 具有**靜態修飾符**的內部類稱為*靜態內部類*。 * 靜態嵌套類無法訪問外部類的非靜態成員。 ### 參考文獻 * [官方文檔](https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html)
                  <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>

                              哎呀哎呀视频在线观看