本帖最后由 sanguodouble1 于 2014-4-19 17:19 编辑
虽然我了解,非静态内部类不能定义静态成员变量(因为非静态内部类要依靠外部类实例存在,这与静态成员变量相矛盾)。
但我不理解,为什么static final 就可以了
代码如下所示:
- class Outer {
- public void outMethod() {
- int outI = 10;
- class Inner {
- static int a = 5; //编译报错
- static final int b = 10; //编译不报错
- }
- }
- }
复制代码 网上有人说,static final 在类加载时就被加载了,这句话在内部类中我无法理解,
求高手解释
|