部分的な内部クラス
1.ローカル内部ローカル変数のクラスと同等です
ローカル変数にアクセスするとき2.ローカル内部クラスは、ローカル変数は、最終的な修正を使用する必要があります。
たとえば、3:
パッケージcom.bjpowernode.java_learning; パブリック クラスD59_1_LocalInnerClass { パブリック 静的 ボイドメイン(文字列[]引数){ D59_1_LocalInnerClass D1 = 新しいD59_1_LocalInnerClass(); d1.m1(); } // メソッド 公共 のボイドM1(){ 最終 int型は I = 10; // 最終ではないが、その後、この変数は変更される場合は、その後、我々は内部クラスを実行します // Iを使用して時間法、その値を決定することができません // ローカル内部クラス // ローカル内部クラスは、アクセス制御許可の変更修飾子はできません クラスInnerClass59 { // 内部クラスには、静的を持つことができます // パブリック静的ボイドM1(){} // メンバメソッド 公共 のボイド平方メートル(){ System.out.println(I); } } InnerClass59インナー = 新しいInnerClass59()。 inner.m2(); } }
第二に、匿名の内部クラス
1.匿名内部クラス:名前のないクラスを参照
2.例
パッケージcom.bjpowernode.java_learning; パブリック クラスD59_2_AnonymousInnerClass { パブリック 静的 ボイドメイン(文字列[]引数){ // テスト(新しい新しいCustomerService59)// インターフェースは、オブジェクト作成されていないため、このメソッド呼び出しは、間違っている CustomerServiceImp1のC1 = 新しい新しいCustomerServiceImp1を(); 試験(C1)。 // そして、ライン上のみのインターフェースを維持することである、作成するために、次のインタフェースクラス不要匿名の内部クラスを使用して テスト(新しい新しいCustomerService59を(){ 公共 のボイドログアウト(){ System.out.println(「再び引き抜か」); } }); } // 静的メソッド パブリック 静的 ボイド試験(CustomerService59 CS){ cs.logout(); } } インターフェースCustomerService59 { 空ログアウト(); } クラス CustomerServiceImp1 実装CustomerService59 { 公共 のボイドログアウト(){ System.out.println(「システムを引き出しました」); } }
3.利点:少ない欠点が簡潔でエラーが発生しやすいを形成するのに十分な再利用可能なクラスではありませんが、ない、クラスを定義します。
第三に、ソースコード:
D59_1_LocalInnerClass.java
D59_2_AnonymousInnerClass.java
住所:
https://github.com/ruigege66/Java/blob/master/D59_1_LocalInnerClass.java
https://github.com/ruigege66/Java/blob/master/D59_2_AnonymousInnerClass.java
2.CSDNます。https://blog.csdn.net/weixin_44630050(西6月6月ムードが知らない - ルイを)
3.パークブログます。https://www.cnblogs.com/ruigege0000/
4.歓迎マイクロチャンネル公衆数に焦点を当て:フーリエ変換材料を学ぶビッグデータを取得するために、唯一の交流を学ぶために、舞台裏の返信「贈り物」をパブリック個人番号を変換