班级和私人会员

Kab*_*eer 1 java private class

class MC {

    private String name;

    void methodA(MC mc){
        System.out.println(mc.name);
    }

}
Run Code Online (Sandbox Code Playgroud)

为什么我能够访问名称变量methodA?我在这里很困惑,有人可以解释一下吗?

aro*_*oth 6

您可以访问它,因为它methodA是课程的一部分MC.类中的每个方法都可以访问该类的私有数据成员(在当前实例和任何其他实例中).只有其他类不能.例如:

class MC {
    private String name;

    void methodA(MC mc){
        System.out.println(mc.name);
    }
}

class SomeOtherClass {
    void printMC(MC mc){
        System.out.println(mc.name);  //compiler error here
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是有关此主题的一些官方文档:http: //download.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html