<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國際加速解決方案。 廣告
                ### 概念 將類寫在其他類的內部,可以寫在其他類的成員位置和局部位置,這時寫在其他類內部的類就稱為內部類。其他類也稱為外部類。 ~~~ public class Outer { public class Inner{ } } ~~~ ### 使用場景 在描述事物時,若一個事物內部還包含其他可能包含的事物,比如在描述汽車時,汽車中還包含這發動機,這時發動機就可以使用內部類來描述。 ### 分類 1. 成員內部類 . 2. 局部內部類 . ### 使用方法 1. 可以使用成員修飾符 . 2. 也可以繼承,也可以實現接口 . 3. 外部類要使用內部類必須建立內部對象 (內部類不能有靜態成員). ~~~ 外部類名.內部類名 變量名 = new 外部類名().new 內部類名() ~~~ ### 成員內部類的同名變量調用 代碼如下 ~~~ public class Outer { public int x = 1; public class Inner{ public int x = 2; public void show() { int x = 3; System.out.print(x); } } } ~~~ 如何訪問三個同名變量呢 ? 從里向外依次為 : ~~~ System.out.print(x); //3 ~~~ ~~~ System.out.print(this.x); //2 ~~~ ~~~ System.out.print(Outer.this.x); //1 ~~~ ### 局部內部類 調用 : ~~~ public class Outer { public void show() { class Inner { public void show() { System.out.print("內部類"); } } Inner in = new Inner(); //必須要在內部方法中new 內部類,然后使用內部類的成員進行調用 . in.show(); } } ~~~ ### 匿名內部類 內部類是為了應對更為復雜的類間關系。查看源代碼中會涉及到,而在日常業務中很難遇到,這里不做贅述。 最常用到的內部類就是匿名內部類,它是局部內部類的一種。 定義的匿名內部類有兩個含義: 1. 臨時定義某一指定類型的子類 . 2. 定義后即刻創建剛剛定義的這個子類的對象 . ## 匿名內部類 1. 是一種特殊的語法,用來快速創建抽象類的子類對象. ## 不用匿名內部類 1. 創建子類.繼承抽象類. 2. 重寫抽象類中的所有抽象方法. 3. new 子類. ## 匿名內部類快速創建抽象類子類 注意,這里創建的不是AbstractAnimal的對象,而是AbstractAnimal子類的對象. ~~~ public abstract class AbstractAnimal { public abstract void eat(); public abstract void sleep(); } ~~~ 第一種方式 ~~~ new AbstractAnimal() { @Override public void eat() { } @Override public void sleep() { } }; ~~~ 第二種方式 ~~~ new AbstractAnimal() { @Override public void eat() { System.out.println("子類吃"); } @Override public void sleep() { System.out.println("子類睡"); } }.eat(); //直接調用. ~~~ 第三種(常用) ~~~ AbstractAnimal animal = new AbstractAnimal() //因為不知道子類類型,所以用父類類型指向子類對象,這里運用了多態. { @Override public void eat() { System.out.println("子類吃"); } @Override public void sleep() { System.out.println("子類睡"); } }; animal.eat(); animal.sleep(); ~~~ ## 匿名內部類快速創建接口的實現類對象 ~~~ public interface Girl { void cook(); void kiss(); } ~~~ ~~~ Girl g = new Girl() //因為不知道實現類的類型,所以用接口的類型. { @Override public void cook() { System.out.println("炒菜"); } @Override public void kiss() { System.out.println("親吻"); } }; g.cook(); g.kiss(); ~~~ ### 匿名內部類作用 匿名內部類 , 簡化問題 . 定義實現類,重寫接口或者抽象類方法 ,建立實現類對象, 合為一步完成 . **使用前提**: 必須要實現一個接口或者繼承一個抽象類, 且只能寫在方法中 . 語法 : 假設有一個接口Parent ~~~ public class Test { public static void main(String[] args) { Parent p = new Parent() { @Override public void show() { System.out.print("匿名內部類"); } }; p.show(); } } ~~~ 或者 ~~~ new Parent() { //@Override public void show() { System.out.print("匿名內部類"); } }.show(); ~~~ 結果 ~~~ 匿名內部類 ~~~
                  <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>

                              哎呀哎呀视频在线观看