Heim >Java >javaLernprogramm >Warum erhalte ich in Java die Fehlermeldung „Ein statischer Verweis auf ein nichtstatisches Feld kann nicht erstellt werden'?

Warum erhalte ich in Java die Fehlermeldung „Ein statischer Verweis auf ein nichtstatisches Feld kann nicht erstellt werden'?

Linda Hamilton
Linda HamiltonOriginal
2024-10-30 18:47:31458Durchsuche

Why am I getting the

Vermeiden des Fehlers „Es kann kein statischer Verweis auf ein nichtstatisches Feld erstellt werden“

Bei der Java-Programmierung kann der Fehler „Es kann kein statisches Feld erstellt werden“ vermieden werden Der Fehler „Referenz auf ein nicht statisches Feld“ tritt auf, wenn versucht wird, innerhalb einer statischen Methode auf ein nicht statisches Feld (auch als Instanzvariable bezeichnet) zuzugreifen.

Im bereitgestellten Code tritt der Fehler aufgrund der Hauptmethode auf wird als statisch deklariert, was bedeutet, dass es nur auf statische Mitglieder der Klasse verweisen kann, einschließlich statischer Methoden und Felder. Die Felder „balance“ und „annualInterestRate“ sind jedoch nicht statisch, was bedeutet, dass sie für jede Instanz der Account-Klasse eindeutig sind.

Um diesen Fehler zu beheben, muss der Code so geändert werden, dass er der entsprechenden Java-Syntax folgt:

  • > Entfernen Sie statische Verweise auf nicht-statische Felder:

    • Die Verweise auf balance und annualInterestRate innerhalb der Hauptmethode sollten entfernt werden, da es sich um Instanzvariablen handelt, auf die über einen Objektverweis zugegriffen wird (z. B. account.getBalance). (), account.getAnnualInterestRate())
  • > Erstellen Sie nicht statische Methoden als Instanzmethoden:

    • Die Auszahlungs- und Einzahlungsmethoden sollten als nicht statisch deklariert werden, da sie über eine Objektreferenz auf das Kontostandfeld zugreifen müssen. Dadurch können sie den Kontostand bestimmter Kontoinstanzen ändern.

Überarbeiteter Code für die Hauptmethode:

<code class="java">public static void main(String[] args) {
    Account account = new Account(1122, 20000, 4.5);

    account.withdraw(2500);
    account.deposit(3000);
    System.out.println("Balance is " + account.getBalance());
    System.out.println("Monthly interest is " + account.getAnnualInterestRate() / 12);
    System.out.println("The account was created " + account.getDateCreated());
}</code>

Überarbeiteter Code für Auszahlungs- und Einzahlungsmethoden:

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

public void deposit(double depositAmount) {
    balance += depositAmount;
}</code>

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in Java die Fehlermeldung „Ein statischer Verweis auf ein nichtstatisches Feld kann nicht erstellt werden'?. 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