區域性和匿名內部類區域性變數為final

2021-08-28 05:50:47 字數 979 閱讀 7510

*內部類和外部類是處於同乙個級別的,內部類不會因為定義在方法中就會隨著方法的執行完畢就被銷毀;

*所以為了防止方法執行完畢,引用了乙個不存在的變數,就copy乙份區域性變數作為內部類的成員變數,

*當區域性變數沒有之後,實際訪問的是copy的複製品。設定為final,保證一致性,。 

/**

* *

*內部類和外部類是處於同乙個級別的,內部類不會因為定義在方法中就會隨著方法的執行完畢就被銷毀;

*所以為了防止方法執行完畢,引用了乙個不存在的變數,就copy乙份區域性變數作為內部類的成員變數,

*當區域性變數沒有之後,實際訪問的是copy的複製品.

* *

* @author hz16092620

* @date 2023年9月18日 下午4:16:23

* @version

*/public class innerclasstest

public static innerinte***ce obj = null;

/*** 區域性變數a作用域只能是方法內部,但是匿名內部類不會隨著方法執行完畢而被銷毀,

* 就copy了乙份區域性變數,同時為了保證一致性,設定為final。

* */

public void fun(final int a)

}; }

/*** 同樣拷貝乙份作為innerclass的成員變數

* */

public void fun1(final int b)

} new innerclass().printb();}}

反編譯如圖:

內部類,介面,區域性變數

1 介面方法不能包含有方法體,介面方法都是抽象方法 abstract 2 介面方法預設都使用abstract進行修飾,可寫可不寫 自動型別轉換 向上轉型,向下轉型 在內部類中,如果有變數與外部類的變數名稱相同,優先使用內部類的變數 內部類可以直接在外部類中使用,用於完成特定的功能 靜態內部類是外部類...

內部類,區域性類,匿名內部類

內部類,顧名思義就是類內部的類。public class student public void setcolor string color public intgetnum public void setnum int num 內部類自己的方法 public void write 區域性類,就是定...

靜態內部類,區域性內部類和匿名內部類

區域性內部類和其他類一同被編譯,但是區域性內部類有自己的作用域,超出那個範圍即無效 第一種情況 在函式內 public class innerclass return new aa public class test public inte ce a 第二種情況 在 塊內 public class ...