0

このコードが機能しない理由

public class BB
{
    private class A
    {
        private int x;
    }

    public static void main(String[] args)
    {
        A a = new A();
        a.x = 100;
        System.out.println(a.x);
    }
}

このコードが動作している間?

public class BB
{
    private class A
    {
        private int x;
    }

    static int y = 3;

    public static void main(String[] args)
    {
        BB b = new BB();
        b.compile();
        System.out.println("y = "+ y);
    }
    public void compile()
    {
        A a = new A();
        a.x = 100;
        System.out.println(a.x);
        System.out.println("y = "+ y);
    }
}

最初のコードでは、内部クラス 'a' のオブジェクトによって内部クラス 'A' のインスタンス変数 'x' を参照しようとすると、静的コンテキストで内部クラスを使用しているというエラーが表示されます。他の方法で同じことをしてもエラーはありません。

4

2 に答える 2