2016-04-25 12 views
0

をインスタンス化できませんか?それはなぜ正しくないのですか?は私のコードである内部クラス

+1

あなたのクラスBはAの内部クラスですから、あなたの場合は再帰関係があります。 –

+0

したがって、Bスタティックにする必要があります – Dmitry

+0

詳細については、java doc https://docs.oracle.com/javase/tutorial/java/javaOO/nested.htmlを参照してください。 – Unknown

答えて

4

Aの内部クラスとしてBを宣言しました。したがって、包含するクラスAのインスタンスを指定せずにインスタンス化することはできません。

あなたはあなたのコードを動作させるためにAの外側Bの定義を移動することができます

class B extends A 
{ 

} 

public class A 
{ 
    int age; 

    void Do() 
    { 
    System.out.println("..."); 
    } 

    public static void main(String[]args) 
    { 
     B b = new B(); 
    } 
} 

それともあなたがあるとして、クラス構造を残すが、Bのインスタンスを作成するために、Aのインスタンスを作成することができます:

B b = new A().new B(); 
+0

とても感謝しています.... – DeSI3

関連する問題