|NO.Z.00079|——————————|BigDataEnd|——|Java&特殊類.V07|------------------------------------------------|Java.v07|區域性內部類.v02|使用方式|
阿新 • • 發佈:2022-04-03
[BigDataJava:Java&特殊類.V07] [BigDataJava.面向物件] [|章節五|特殊類|區域性內部類的使用方式|]
一、區域性內部類的使用方式
二、程式設計程式碼### --- 區域性內部類的使用方式 ~~~ ——> 區域性內部類只能在該方法的內部可以使用。 ~~~ ——> 區域性內部類可以在方法體內部直接建立物件。 ~~~ ——> 區域性內部類不能使用訪問控制符和static關鍵字修飾符。 ~~~ ——> 區域性內部類可以使用外部方法的區域性變數,但是必須是final的。 ~~~ ——> 由區域性內部類和區域性變數的宣告週期不同所致。
三、程式設計程式碼package com.yanqi.task10; /** * 程式設計實現區域性內部類的定義和使用 */ public class AreaOuter { private int cnt = 1; public void show() { // 定義一個區域性變數進行測試,從Java8開始預設理解為final關鍵字修飾的變數 // 雖然可以省略final關鍵字,但建議還是加上 final int ic = 4; // 定義區域性內部類,只在當前方法體的內部好使 拷貝一份 class AreaInner { private int ia = 2; public AreaInner() { System.out.println("區域性內部類的構造方法!"); } public void test() { int ib = 3; System.out.println("ia = " + ia); // 2 System.out.println("cnt = " + cnt); // 1 //ic = 5; Error System.out.println("ic = " + ic); // 4 } } // 宣告區域性內部類的引用指向區域性內部類的物件 AreaInner ai = new AreaInner(); ai.test(); } }
package com.yanqi.task10;
public class AreaOuterTest {
public static void main(String[] args) {
// 1.宣告外部類型別的引用指向外部類的物件
AreaOuter ao = new AreaOuter();
// 2.通過show方法的呼叫實現區域性內容類的定義和使用
ao.show();
}
}
四、編譯列印
D:\JAVA\jdk-11.0.2\bin\java.exe "-javaagent:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=54183:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\NO.Z.10000——javaproject\NO.H.00001.javase\javase\out\production\javase com.yanqi.task10.AreaOuterTest 區域性內部類的構造方法! ia = 2 cnt = 1 ic = 4 Process finished with exit code 0
===============================END===============================
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
來自為知筆記(Wiz)