請仔細閱讀該代碼編譯罰款:內部類可以訪問外部類的方法從屬性只有
class OuterClass {
String a = "A";
String b = "B";
String c = "C";
public static class StaticInnerClass {
}
public String stringConCat() {
return a + b + c;
}
}
這是我期望的內部類可以訪問外部類的屬性。但現在當我嘗試相同的代碼,而是內在的屬性分配外屬性的系統抱怨:
class OuterClass {
String a = "A";
String b = "B";
String c = "C";
public static class StaticInnerClass {
String x = a; //this can not be done, why ?
}
public String stringConCat() {
return a + b + c;
}
}
錯誤/在編譯時警告:非靜態場a
不能從靜態上下文引用。
它是因爲在方法stringConCat()
你實際上需要一個實例來調用方法(post構造函數調用),以便它允許?而在第二個例子中,沒有真實的實例,所以它將它視爲靜態引用?我看過I thought inner classes could access the outer class variables/methods?,但它仍然沒有下沉。有人可以幫忙嗎?
這裏沒有內在的課堂。 「靜態的內心」是一個矛盾的詞彙。你在這裏有一個靜態*嵌套*類。 – EJP