1. 程式人生 > >為什麽局部內部類訪問外邊的局部變量必須為final?

為什麽局部內部類訪問外邊的局部變量必須為final?

下載 out title ble 類型 cannot www. 錯誤 。。

6.局部內部類訪問外邊的局部變量時,此變量必須為final類型 (視頻下載) (全部書籍)馬克-to-win:由於技術方面的限制,java的設計者們做出如下語法規定:局部內部類訪問外邊的局部變量時,此變量必須為final類型,(為什麽請參考我的參考目錄)馬克-to-win:否則會報一個錯誤:Cannot refer to a non-final variable i inside an inner class defined in a different method

例2.6---本章源碼

class ShellMark_to_win {

int x = 100;//x是類變量, 內部類訪問時不用加final。
void test() {
for (int i = 0; i < 2; i++) {
/*馬克-to-win:下面的y和str是局部變量,內部類訪問時必須加final */
final int y=6;
final String str="aaa";
class Core {
void display() {
System.out.println("外部類的x=" + x+y+str);
}
}
Core inner = new Core();
inner.display();
}
// Core inner = new Core(); //錯誤找不到Core。
}
}
public class Test {
。。。。。。。。。。。。。。。。。
詳情請進:http://www.mark-to-win.com/index.html?content=JavaBeginner/javaUrl.html&chapter=JavaBeginner/JavaBeginner4_web.html#LocalInnerClassFinal

為什麽局部內部類訪問外邊的局部變量必須為final?