パッケージInnerClass; / ** *特長 * 1:他のクラスは、クラス外部からアクセスすることができないように、外側のクラスの中に隠された内部クラスによって、カプセル化強化。 * 2:拡張保守。 * 3:内部クラスは、外部のメンバーにアクセスすることができます。 * @Author 管理者 * * / クラスInnerClassDemo { 文字列STR = "OUT" 、 静的 文字列STR1 = "静的" 、 パブリック 静的 ボイドoutstaticStr(){ のSystem.out.println(); } 公共 ボイドoutStr(){ StaticInner staticInner = 新しい新しいStaticInner(); staticInner.staticStr(); 列C =StaticInner.strInnerSt; 文字列InnerC = Inner.InnerStaticelements; のSystem.out.println(STR); インナーインナー = 新しい新しいインナー(); のSystem.out.println(inner.str); inner.innerStr(); } / ** *内部クラスの例 * @authorの管理者 * 1:内部オブジェクトのクラスの例は、オブジェクトとして扱い、内部クラスです。静的変形使用することはできません * 2:クラスの内部クラス外部のインスタンスへの参照があります * 3:外部のクラスは一種直接クラスメンバー外部内部の静的メンバの.thisと外部クラスの内部クラスのメンバーの例としては、直接アクセス、外部リファレンスにアクセスすることができます。アクセス。 * 4;内部クラスのオブジェクトを作成するために外部のクラス、そのクラス内のメンバにアクセスします。直接静的な内部クラスのメンバー。メンバー。 * 5:内部静的クラスメンバーの例はfianlなければならない * / パブリック クラス{インナー 文字列STR = "内側" 、 静的 最終列InnerStaticelements = "staticInner" ; 公共 ボイドinnerStr(){ InnerClassDemo.outstaticStr(); System.out.printlnは(これの.str) 。のSystem.out.println(InnerClassDemo 本の.str ); } } / ** * * @authorの管理 *プラス静的内部クラスは、静的な内部クラスである *静的な内部クラスが外部クラスの実行のためのスペースを開け、ヒープを参照していません。 *静的な内部クラスは、外部のクラスの静的メンバに直接アクセス(クラスは外部外部クラスのメンバーを必要としない)、新しい外部クラスを通じてクラスの非静的クラスメンバーの外部へのアクセスを持っています。 *静的な内部クラスは非staticメンバーを作成することができます。 静的内部クラス内部の静的メンバを介して非静的メンバオブジェクトアクセス新しい静的内部クラスの内部クラスによってアクセス*外部クラス方法メンバー * / 静的 クラスStaticInner { 静的文字列strInnerSt = "rewre" ; 文字列SRT = "staticInner" ; 公共 ボイドstaticStr(){ System.out.printlnは(新しい新しいInnerClassDemo()STR。); のSystem.out.println(0009); } } / ** *アクセスプライベート、パブリックなどできないローカル内部クラスを設定する にも方法を使用して、部分的方法では、クラス定義内* ローカル内部クラスは静的変数を含めることはできません* 、外部のメンバーにアクセスすることにより、*外部静的に。メンバー方法は、通常は新しい外用での方法です。 *外部クラスは、クラスの内部のメンバーにアクセスすることはできません * / パブリック 無効showLocalInner(){ クラス LocalInnerを{ 文字列ローカル = "localInner" ; 公共 ボイドlocalMethods(){ System.out.printlnは(STR); } } のSystem.out.println(新しい新しいLocalInner()ローカル); localMethods(); } / * * *匿名クラスは、一般的にイベントの開発に使用され、アンドリュースは、GUIの開発は、一度だけ使用します。 *非静的メンバの方法は、実施形態の新規クラス、外部の静的クラスメンバーのクラス外の外部部材にアクセスすることができる。アクセス外部の静的メンバ * * / RunnableをRUN = 新しいRunnableを(){ @Override 公共 ボイドRUN() { // TODO自動生成方法スタブ のSystem.out.println(STR)。 } }。 }
パッケージInnerClass; インポートinnerClass.InnerClassDemo.Inner、 パブリック クラスTestInnerClass { 公共 静的 ボイドメイン(文字列[]引数){ InnerClassDemo.Innerインナー = 新しい新しい(InnerClassDemoを)。新しい新しいインナー(); // 内部のアクセスクラスの実施形態例の他のタイプ inner.innerStr(); のSystem.out.println(InnerClassDemo.StaticInner.strInnerSt); // 外部の外部クラスによってクラスの内部アクセスクラスメンバー内部..内部の静的メンバ } }