访问类中的私有字段

时间:2013-09-24 10:41:38

标签: java

关于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。这一切都让人很困惑。有人可以澄清这个吗?

3 个答案:

答案 0 :(得分:6)

Java的访问修饰符的意义在于保护类的内部不受其外部代码的影响。由于同一类的所有实例共享相同的内部代码,因此在它们之间实施访问限制几乎没有用。

这是Java的类级别封装的基本原理。

答案 1 :(得分:0)

只要您在同一个班级,就可以访问私有变量

答案 2 :(得分:0)

对于您创建的对象'Whoa'的每个新实例,都会有一个'n'的实例。 'n'只能从'Whoa'(因此私有)

的实例访问