Ich habe eine Frage zu diesem Codefragment:
public class Inner {
static int a;
public static void main(String[] args) {
a = 0;
}
public static void g() {
this.a = 0;
}
}
`
Warum können wir "this.a" nicht in statischen Methoden verwenden, sondern "a" ohne "this"?
Foto des Kompilierungsfehlers: https://www.dropbox.com/s/5q6y3ldsf37p0h3/%D0%97%D0%BD%D1%96%D0%BC%D0%BE%D0%BA%20%D0%B5%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202017-05-27%2017.28.34.png?dl=0
Antworten:
1 für die Antwort № 1weil Dies verweist auf eine Instanz der Klasse in der statisch Methode Sie haben keine Instanz.
Das Dies Das Schlüsselwort verweist auf die aktuelle Instanz der Klasse. Statische Elementfunktionen haben kein Dies Zeiger
Sie werden feststellen, dass die Definition eines statischen Members lautet
Benutze die statisch Modifikator zum Deklarieren eines statischen Members, das zum Typ selbst und nicht zu einem bestimmten Objekt gehört
Weshalb Dies hat nichts zu zeigen.