Heim > Java > javaLernprogramm > Warum gibt Java einen Fehler aus, wenn es einen statischen Verweis auf ein nichtstatisches Feld erstellt?

Warum gibt Java einen Fehler aus, wenn es einen statischen Verweis auf ein nichtstatisches Feld erstellt?

DDD
Freigeben: 2024-11-01 11:23:25
Original
963 Leute haben es durchsucht

Why Does Java Throw an Error When Making a Static Reference to a Non-Static Field?

Statischer Verweis auf ein nicht-statisches Feld

In Java kann ein statischer Verweis auf ein nicht-statisches Feld eine Fehlerquelle sein. Schauen wir uns ein konkretes Beispiel an, um dieses Problem zu verstehen und zu lösen.

Betrachten Sie den folgenden Code:

<code class="java">public class Account {

    private int id = 0;
    private double balance = 0;

    public static void main(String[] args) {
        Account account = new Account(1122, 20000);
        account.withdraw(balance, 2500);
    }

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

Beim Versuch, diesen Code zu kompilieren, tritt der folgende Fehler auf:

Cannot make a static reference to the non-static field balance
Nach dem Login kopieren

Dieser Fehler tritt auf, weil die Rückzugsmethode als statisch deklariert ist, was bedeutet, dass sie direkt von der Klasse aufgerufen werden kann, ohne dass eine Objektinstanz erforderlich ist. Das Saldofeld ist jedoch nicht statisch, was bedeutet, dass nur über eine Objektinstanz darauf zugegriffen werden kann.

Um diesen Fehler zu beheben, müssen wir die Auszahlungsmethode ändern, um ihre statische Deklaration zu entfernen:

<code class="java">public void withdraw(double withdrawAmount) {
    balance -= withdrawAmount;
}</code>
Nach dem Login kopieren

Alternativ könnten wir das Balance-Feld statisch machen, was den Zugriff ohne eine Objektinstanz ermöglichen würde. Dies ist jedoch nicht immer wünschenswert, da es zu einem gemeinsamen veränderlichen Zustand aller Instanzen der Klasse führen könnte.

Durch die Befolgung dieser Prinzipien können wir solche Fehler vermeiden und sicherstellen, dass unser Code den statischen und nicht-statischen Java-Standards entspricht. Statische Feldnutzungsrichtlinien.

Das obige ist der detaillierte Inhalt vonWarum gibt Java einen Fehler aus, wenn es einen statischen Verweis auf ein nichtstatisches Feld erstellt?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage