我的印象是私有的非静态变量只能通过变量驻留在对象上的方法访问,但事实并非如此。有人能解释为什么以下编译和运行的原因吗?访问私有变量的Java静态方法
public class Sandbox {
private String _privateString = "unmodified";
public static void setPrivateString(String str, Sandbox s) {
s._privateString = str;
}
public String toString()
{
return _privateString;
}
public static void main(String[] args) {
Sandbox s = new Sandbox();
setPrivateString("modified", s);
System.out.println(s);
}
}
输出:
modified
编辑:同样是在C#真。
您可以直接从'main()'修改'_privateString'作为它在同一个类中。 – 2011-02-26 19:15:45