考虑以下代码:
public class Foo
{
class Bar
{
private String barbar;
public Bar( String b ) { barbar = b; }
}
class Meh
{
Bar b = new Bar("BAR!");
public void displayName() {
System.out.println( b.barbar );
}
}
}
Run Code Online (Sandbox Code Playgroud)
Java允许类Meh访问私有实例变量barbar,它被声明为private内Bar。
我知道这个问题以前有人问在这里。但是,答案基本上只是重申观察到的范围就是它的范围(barbar在类的大括号中可以访问Foo),但是没有提供任何解释。经过一番谷歌搜索后,我无法对这种行为进行深入的讨论。我想知道的是,这种范围界定行为是否有特定的理由。我本来希望barbar在班上“大括号内”是私人的Bar。