- class Outer
- {
- private int num=3;
- void method()
- {
- final int nums=4;
- class Inner
- {
- private int num=5;
- void show()
- {
- int num=6;
- System.out.println(num);
- System.out.println(this.num);
- System.out.println(Outer.this.num);
- System.out.println(nums);
- }
- }
- Inner in=new Inner();
- in.show();
- }
- }
- class Demo
- {
- public static void main(String[] args)
- {
- new Outer().method();
- }
-
- }
复制代码 内部类可以存放在局部位置上。
内部类在局部位置上只能访问局部中被final修饰的局部变量。
刚写日记汇总内部类知识的时候,看到了知识点局部内部类只能访问局部中被方法访问的局部变量.然后我在类中各个地方都加入了同名变量.num并赋不同的值.
Outer.this.num=3;
this.num=5;
num=6;
被final修饰的局部变量.如果没有this.num是可以访问的,但是加入了就没办法访问了.程序不报错,但是除了改名以外,始终没有任何办法能访问到被final修饰的变量.
大家看下.
|