內部類的生命週期和方法中的區域性變數是不一樣的,內部類是也是乙個類,是儲存在堆中,也只有當對該類的引用消失時,內部類才會消亡。而方法的區域性變數是儲存在堆疊中的,當呼叫結束時就會退棧,即在記憶體中這個屬性就消失了。也就是說,內部類的生命週期超過了方法中區域性變數的生命週期,內部類可能會呼叫到已經消失的屬性,因此內部類不能訪問方法中的區域性變數。
解決方法就是在區域性變數前加修飾符final
,此時區域性變數就會存在堆中,生命週期跟工程的生命週期是一樣的,此時內部類就可以訪問方法中的區域性變數。
方法中的內部類能不能訪問方法中的區域性變數?
內部類的生命週期和方法中的區域性變數是不一樣的,內部類是也是乙個類,是儲存在堆中,也只有當對該類的引用消失時,內部類才會消亡。而方法的區域性變數是儲存在堆疊中的,當呼叫結束時就會退棧,即在記憶體中這個屬性就消失了。也就是說,內部類的生命週期超過了方法中區域性變數的生命週期,內部類可能會呼叫到已經消失...
main方法中訪問內部類
同學發了這麼些 報錯,問怎麼解決。public class test2 class a 編譯了一下,報錯 解決方法是 建立外部類物件,再使用外部類物件來new乙個內部變數 public class test2 class a 對main方法而言,雖然寫在類中,它是游離於任何類之外的,因此某類的非靜態...
JAVA中的內部類 方法內部類
方法內部類就是內部類定義在外部類的方法中,方法內部類只在該方法的內部可見,即只在該方法內可以使用。由於方法內部類不能在外部類的方法以外的地方使用,因此方法內部類不能使用訪問控制符和 static 修飾符。下邊的例子 外部類 public class helloworld 建立方法內部類的物件 min...