Java statische Methoden den Zugriff auf private Variablen

War ich unter dem Eindruck, dass eine private, nicht-statische Variablen können nur zugegriffen werden, indem die Methoden für das Objekt aufgerufen, dass die Variablen befinden, dies ist jedoch nicht der Fall. Könnte jemand bitte erklären Sie die Gründe, warum die folgenden kompiliert und läuft?

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);
    }
}

Ausgabe:

modified

EDIT: Das gleiche gilt in C#.

Sie könnte sich geändert haben _privateString direkt von der main() als Ihr in der gleichen Klasse.

InformationsquelleAutor T.K. | 2011-02-26

Schreibe einen Kommentar