Je pensais que les classes internes pouvaient accéder aux variables / méthodes de la classe externe?

J'ai lu un certain nombre de sujets à discuter de classes internes, et j'ai eu l'impression que l'intérieur de la classe a accès aux variables et méthodes de la classe englobante. Dans le suivant, je dispose d'un extérieur de la classe et un à l'intérieur de la classe, dans la classe de test j'ai créer une instance de l'extérieur de la classe et puis depuis que j'ai créer une instance de l'intérieur de la classe. Cependant, je ne suis pas en mesure d'accéder à la Chaîne à une variable à l'intérieur de la classe de référence. De l'aide?

public class OuterClass {

    String a = "A";
    String b = "B";
    String c = "C";

    class InnerClass {
        int x;

    }

    public static class StaticInnerClass {
        int x;
    }

    public String stringConCat() {
        return a + b + c;

    }
}

public class TestStatic {

    public static void main(String args[]) {

        OuterClass.StaticInnerClass staticClass = new OuterClass.StaticInnerClass();
        OuterClass outer = new OuterClass();
        OuterClass.InnerClass inner = outer.new InnerClass();

        System.out.println(inner.a);//error here, why can't i access the string
                                    //variable a here?

    }
}

source d'informationauteur rage