Yo tenía la impresión de que las variables no estáticas privadas sólo se podía acceder por métodos llamados en el objeto de que las variables residen en, pero este no es el caso. ¿Podría alguien explicar el razonamiento detrás de por qué las siguientes compilaciones y ejecuciones?métodos estáticos Java que acceden variables privadas
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);
}
}
de salida:
modified
EDIT: Lo mismo es cierto en C#.
Puede haber modificado '_privateString' directamente desde' main() 'ya que está en la misma clase. –