局部内部类为什么只能访问final局部变量,对于成员变量却可以随便访问?

局部内部类为什么只能访问final局部变量,对于成员变量却可以随便访问?

public class OuterClass { private int memberField = 10; public void outerDo(){ final int localField = 20; class InnerClass{ public void innerDo(){ memberField = localField; } }; } }

1. 局部变量和成员变量对于内部类而言,具有一定的共性,都是该内部类外面的变量。如果要求内部类只能访问final的局部脸部是为了确保局部变量不被修改的话,那么内部类访问成员变量应该也有类似的限制才对

未完待续

你可能感兴趣的:(class)