我的印象是私有的非靜態變量只能通過變量駐留在對象上的方法訪問,但事實並非如此。有人能解釋爲什麼以下編譯和運行的原因嗎?訪問私有變量的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