在方法中定义的类的字段上使用访问修饰符有什么意义?
e.g:
class Outer
{
public static void main (String[] args)
{
// class defined inside method
class Test
{
// applies an access modifier
public int field;
}
Test test = new Test();
}
}
以下两条陈述是否正确:
让我印象深刻的是,虽然不可能为课程使用访问修饰符,但它完全适用于其成员。虽然他们中的任何一个似乎对我都没有意义。
答案 0 :(得分:2)
无论访问修饰符如何,仍然是访问的唯一方法 来自该方法范围之外的字段,是使用反射。
正确。但是,如果您遇到此问题,那么该类实际上不应该是本地类。
无论访问修饰符如何,始终可以访问该字段 在方法范围内,即使字段是私有的,也没有 任何反思的需要。
本地课程的用例很少。访问修饰符实际上没有任何影响,因为您的类应该是创建它的方法的本地:
与成员类一样,本地类与包含相关联 实例,并且可以访问任何成员,包括私人成员 包含类。
http://docstore.mik.ua/orelly/java-ent/jnut/ch03_11.htm
修改:
编译器允许您指定一个然后不强制执行的修饰符,这似乎很奇怪。我可以想到为什么会出现这种情况的两个很好的理由: