关于Java的基础知识,我遇到了一件有趣的事情。 这是代码:
class Whoa {
private int n;
private void d() {
Whoa whoa = new Whoa();
whoa.n = 1;
}
}
为什么对象n
的字段whoa
可以访问?我的意思是,好吧,我们在课堂上。但whoa
是单独的对象,我认为我们只能访问当前对象的字段。虽然我承认如果我们有一个采用Whoa参数的方法:
private void b(Whoa w) {
w.n = 20;
}
我们绝对可以访问n
。这一切都让人很困惑。有人可以澄清这个吗?
答案 0 :(得分:6)
Java的访问修饰符的意义在于保护类的内部不受其外部代码的影响。由于同一类的所有实例共享相同的内部代码,因此在它们之间实施访问限制几乎没有用。
这是Java的类级别封装的基本原理。
答案 1 :(得分:0)
只要您在同一个班级,就可以访问私有变量
答案 2 :(得分:0)
对于您创建的对象'Whoa'的每个新实例,都会有一个'n'的实例。 'n'只能从'Whoa'(因此私有)
的实例访问