2

methodTwo(); の呼び出し方法 from methodOne(); ?

class Name {
    void methodOne() {
        class InnerClass {
           void methodTwo() {
           }
         }
     }
 }

ありがとう!

4

3 に答える 3

6

のインスタンスを作成する必要があります。InnerClassこれは、他のインスタンス メソッドが呼び出すインスタンスを必要とするのと同じ方法です。

class Name {
   void methodOne() {
     class InnerClass {
       void methodTwo() {
       }
     }

     InnerClass x = new InnerClass();
     x.methodTwo();
   }
}

これを行う前に注意する価値があります-私が関連付けられているプロダクションコードのメソッド内で宣言された名前付きクラスを見たことがないと思います。通常、メソッドが長くなりすぎないように、非常に短いものには匿名の内部クラスを使用するか、それより長いものにはプライベートな静的名前付きクラスを使用します。

于 2012-07-06T11:51:22.083 に答える
0
class Name {
    void methodOne() {
        class InnerClass {
           void methodTwo() {
               new InnerClass().methodTwo();
           }
        }
    }
}
于 2012-07-06T11:53:39.603 に答える
-2

非静的のネストされたクラスは、包含クラスに結び付けられますが、1 つの包含インスタンスを持つネストされたクラスの多数のインスタンスになる可能性があります。したがって、メソッドを実行する対象のインスタンス名を指定する必要があります。

于 2012-07-06T11:55:04.627 に答える