Heim >Java >javaLernprogramm >Warum kann ich mit einer statischen Methode nicht auf ein nicht statisches Feld zugreifen?

Warum kann ich mit einer statischen Methode nicht auf ein nicht statisches Feld zugreifen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-01 04:38:02547Durchsuche

Why Can't I Access a Non-Static Field from a Static Method?

Referenzierung nichtstatischer Felder aus statischen Methoden

Wenn der Fehler „Es kann kein statischer Verweis auf das nichtstatische Feld erstellt werden“ auftritt, Es ist wichtig, den Unterschied zwischen statischen und nicht statischen Feldern und Methoden zu verstehen.

Statische Felder und Methoden sind Attribute und Funktionen auf Klassenebene, die keiner bestimmten Objektinstanz zugeordnet sind. Umgekehrt sind nicht statische Felder und Methoden instanzspezifisch und haben nur im Kontext einer Instanz der Klasse eine Bedeutung.

Im Kontext des bereitgestellten Codes versucht die als statisch markierte Hauptmethode, auf die zuzugreifen nichtstatisches Feldgleichgewicht. Dies ist jedoch nicht zulässig, da statische Methoden nicht direkt auf nicht statische Felder verweisen können. Der Grund dafür ist, dass statische Methoden keinen impliziten Verweis auf eine bestimmte Instanz der Klasse haben.

Um dieses Problem zu beheben, können Sie entweder die Hauptmethode nicht statisch machen (indem Sie das Schlüsselwort „static“ aus ihr entfernen). Deklaration) oder ändern Sie die Auszahlungs- und Einzahlungsmethoden, um Zugriff auf Instanzebene auf das Kontostandfeld zu verwenden. Zum Beispiel:

<code class="java">public Account() {
    // ...
    balance = 20000;
}

public void withdraw(double withdrawAmount) {
    balance -= withdrawAmount;
}</code>

Alternativ können Sie bei Bedarf statische Methoden definieren, um die Auszahlungs- und Einzahlungsvorgänge durchzuführen.

Das obige ist der detaillierte Inhalt vonWarum kann ich mit einer statischen Methode nicht auf ein nicht statisches Feld zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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