内部カテゴリ:
①静的内部クラスは非staticメソッドを持つことができます
内部クラスは、静的メソッドまたは静的メンバ変数を有する場合②、それは静的内部クラスである必要があります
1、内部クラス・カテゴリーへの外部からのアクセス:
静的な内部クラスが変更されます。直接新しいです
中=新しいインナーインナー();
内部の静的クラスが変更されていません:それは外側のクラスの最初の新しいインスタンス必要があり、新しい内部のそのクラス
。=新しい外()新しいインナーにおけるインナー();
図2に示すように、外部クラス:(外クラス.thisにアクセスするための内部クラス。変数)
図3に示すように、外側の内部クラスおよび各クラスにアクセスするための方法:
互いに音声アクセスカテゴリ内の非静的試験の外部の静的非静的メソッドとクラスの①方法。
次に、音声テスト新しい外側の新しいクラスへのアクセスクラス、メソッド、および転写
パブリック クラスOuterclass { クラスインナー{ 公共 ボイド声(){ System.out.printlnは( "声()" ); } } パブリック 静的 ボイド試験(){ 新 Outerclass()。新しいインナー()の声(); } パブリック 静的 ボイドメイン(文字列[]引数){ // 主函数调用試験方法の 試験(); 13 } }
音声テストアクセス外側のクラス.this。方法(外部参照型保持)
パブリック クラスOuterclass { クラスインナー{ 公共 ボイド声(){ Outerclass。この.TEST(); } } パブリック 静的 ボイド試験(){ System.out.printlnは( "試験()" )。 } パブリック 静的 ボイドメイン(文字列[]引数){ // 主函数调用音声() =内側新しい Outerclass()。新しいインナー(); 請求書(); } }
各非静的メソッドは、静的な内部クラス外部音声テスト②非静的メソッドとクラス間の呼び出し
VOICアクセステスト
パブリック クラスOuterclass { 静的 クラスインナー{ 公共 空の声(){ 新しいOuterclass()テスト(); } } 公共 ボイド試験(){ System.out.printlnは( "試験()" )。 } パブリック 静的 ボイドメイン(文字列[]引数){ // 主函数调用音声()方法 新しいOuterclass.Inner()音声()。 } }
テストアクセスの声
パブリック クラスOuterClass { 静的 クラスインナー{ 公共 ボイドボイス(){ System.out.printlnは(「音声()」); } } 公共 ボイド試験(){ // 1、外部の静的内部クラスのクラスへのアクセスの他のタイプ。非静的メソッド // 新しい新しいOuterclass.Inner()音声();. // 2、試験方法Outerclass本明細書に内部アクセス静的クラスの非静的メソッドで 新しい新内側()音声();. } パブリック 静的 ボイドメイン(文字列[]引数){ // 主な機能は、テストメソッド呼び出し の新しい新OuterClass()テストを();. } }