静态内部类、局部内部类可访问的变量限制

来源:互联网 发布:万税 知乎 编辑:程序博客网 时间:2024/05/21 09:38

1、局部内部类:

可以访问的变量:(1)外部类的类变量(2)外部类的成员变量(3)所在方法中被final修饰的变量。

2、静态内部类:

可以访问的变量:(1)外部类的类变量


3、代码测试:

import java.util.*;public class Main {    //test code    int aaa=1;    final int bbb=2;    public void get(){        int a=0;        final int c=2;        class C1{            public void get(){                System.out.println(c);                //1:提示错误:变量a不能被访问,需要被声明为final                System.out.println(a);//1(3)内部类只能访问所在方法中的final变量                System.out.println(bbb);//1(1)                System.out.println(aaa);//1(2)            }        }    }    static class C2{        private void set(){            //2:提示错误:非静态变量ccc不能被静态上下文引用.这一点可以从jvm的类加载机制的顺序得到解释            System.out.println(aaa);//静态类方法只能访问外部类的静态变量.            System.out.println(bob);//2(1)        }    }}