Я прочитал несколько тем, обсуждая внутренние классы, и у меня создалось впечатление, что внутренний класс имеет доступ к переменным и методам охватывающего класса. В следующем случае у меня есть внешний класс и внутренний класс, в тестовом классе я создаю экземпляр внешнего класса, а затем из него создаю экземпляр внутреннего класса. Однако я не могу получить доступ к переменной String a через внутреннюю ссылку на класс. Помогите?
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?
}
}