0
我有一個學習Java 7 OCP考試的學生,他向我介紹了這個問題。他和我的理解是一個局部變量不能在法的內部類中使用,除非它是決賽,但他提出我用下面的代碼它運行得很好:局部變量不能在內部類中使用。那麼爲什麼這個代碼工作?
public class TestC195 {
public static void main(String[] args) {
TestC195 myObject = new TestC195();
myObject.doStuff();
}
private String x = "Outer 2";
void doStuff() {
String z = "local";
class myInner {
public void seeOuter() {
System.out.println("outer: " + x);
System.out.println("outer: " + z);
}
}
myInner in = new myInner();
in.seeOuter();
}
}
輸出是:
outer: Outer 2
outer: local
那麼我們都缺少什麼?
這是[類成員(https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html) 。 – Maroun
您可能正在使用Java 8進行編譯,其規則略有變化:變量只能是「有效」最終的。 –