J'avais l'impression que l'accès aux variables privées non statiques ne pouvait se faire que par des méthodes appelées sur l'objet dans lequel résident les variables, mais ce n'est pas le cas. Quelqu'un pourrait-il s'il vous plaît expliquer le raisonnement derrière pourquoi compile et fonctionne?Méthodes statiques Java accédant aux variables privées
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);
}
}
Sortie:
modified
EDIT: en est de même en C#.
Vous pourriez avoir modifié '_privateString' directement à partir de' main() 'comme étant dans la même classe. –