Heim > Java > javaLernprogramm > Warum kann ich in Java nicht über eine statische Methode auf eine nichtstatische Variable zugreifen?

Warum kann ich in Java nicht über eine statische Methode auf eine nichtstatische Variable zugreifen?

Barbara Streisand
Freigeben: 2024-12-30 18:54:09
Original
836 Leute haben es durchsucht

Why Can't I Access a Non-Static Variable from a Static Method in Java?

Fehler: Nicht-statische Variable kann nicht aus einem statischen Kontext referenziert werden

In Ihrem Code deklarieren Sie eine Klassenvariablenanzahl und versuchen dies Greifen Sie innerhalb einer statischen Methode main darauf zu. Dieser Fehler tritt auf, weil in einem nicht statischen Kontext deklarierte Variablen nicht direkt von einem statischen Kontext aus referenziert werden können.

Statische und nichtstatische Kontexte verstehen:

  • Statischer Kontext: Bezieht sich auf eine Klasse selbst, unabhängig von einer bestimmten Instanz. Statische Methoden und Variablen gehören zur Klasse, nicht zu einzelnen Instanzen.
  • Nichtstatischer Kontext: Bezieht sich auf eine bestimmte Instanz einer Klasse. Nicht statische Methoden und Variablen gehören zu einem Objekt und variieren je nach Instanz.

In Ihrem Beispiel ist count eine nicht statische Variable, was bedeutet, dass sie für jede Instanz der MyProgram-Klasse spezifisch ist. Um den Fehler zu beheben, müssen Sie eine Instanz von MyProgram erstellen und auf die Anzahl der Zugriffe innerhalb der nicht statischen Methode zugreifen.

Lösung:

  1. Erstellen Sie eine Instanz der MyProgram-Klasse:
MyProgram obj = new MyProgram();
Nach dem Login kopieren
  1. Zugriffsanzahl innerhalb eines nicht statischen Zeitraums Methode:
public void run() {
    System.out.println(count);
}
Nach dem Login kopieren
  1. Rufen Sie die Ausführungsmethode von der Hauptmethode aus auf:
public static void main(String[] args) {
    MyProgram obj = new MyProgram();
    obj.run();
}
Nach dem Login kopieren

Durch Befolgen dieser Schritte stellen Sie sicher, dass die Ausführung nicht statisch ist Auf die Variablenanzahl wird in einem nicht statischen Kontext zugegriffen.

Das obige ist der detaillierte Inhalt vonWarum kann ich in Java nicht über eine statische Methode auf eine nichtstatische Variable zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage