访问类中的私有字段

ioz*_*zee 1 java

关于Java的基础知识,我遇到了一件有趣的事情.这是代码:

class Whoa {
  private int n;

  private void d() {
    Whoa whoa = new Whoa();
    whoa.n = 1;
  }
}
Run Code Online (Sandbox Code Playgroud)

为什么n对象的字段whoa可以访问?我的意思是,好吧,我们在课堂上.但是whoa是单独的对象,我以为我们只能访问当前对象的字段.虽然我承认如果我们有一个采用Whoa参数的方法:

private void b(Whoa w) {
  w.n = 20;
}
Run Code Online (Sandbox Code Playgroud)

我们肯定可以访问n.这一切都让人很困惑.有人可以澄清一下吗?

Mar*_*nik 6

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

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