|NO.Z.00079|——————————|BigDataEnd|——|Java&特殊类.V07|——|Java.v07|局部内部类.v02|使用方式|
一、局部内部类的使用方式
### --- 局部内部类的使用方式
~~~ ——> 局部内部类只能在该方法的内部可以使用。
~~~ ——> 局部内部类可以在方法体内部直接创建对象。
~~~ ——> 局部内部类不能使用访问控制符和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
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
浙公网安备 33010602011771号