Heim >Java >javaLernprogramm >Warum kann ich mit einer statischen Methode nicht auf ein nicht statisches Feld zugreifen?
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!