内部类不能有静态变量(除静态的对Static的理解)
关于内部类(static与final)
Static 不用实例化就能加载进内存
而内部类需要外部类实例化后才能加载进内存。这就间接造成static需要实例化了。与static不需要实例化语义矛盾
1、假设外部类没有实例化,
-
- 通过类名.调用,这时内部类需要实例化才能进内存,显然外部类没有实例化则static 未进内存,无法直接调用与static 语义,矛盾。
静态的内部类就没有这一矛盾,不需要实例化就能调用静态变量。
2、假设外部类实力化,
-
- 而static 语义是不用通过类的实例化就能使用,所以又产生了矛盾
如果要使用static变量则需要用final修饰,final修饰后变量不在加载类时进内存,而是在加载了类之前进入内存。
最后:局部内部类所在位置方法内的变量不可改变,已被final修饰变成常量。默认有final(1.8之后)。而且只有之中操作方式。
加油 坚持