„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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“?

Veröffentlicht am 07.11.2024
Durchsuche:344

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. Allerdings sind die Felder „balance“ und „annualInterestRate“ 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:

  • > Statische Verweise auf nichtstatische Felder entfernen:

    • Die Verweise auf Balance und AnnualInterestRate innerhalb der Hauptmethode sollten entfernt werden, weil Es handelt sich um Instanzvariablen, auf die über eine Objektreferenz zugegriffen wird (z. B. account.getBalance(), account.getAnnualInterestRate())
  • > Nichtstatische Methoden zu Instanzmethoden machen :

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

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());
}

Überarbeiteter Code für Auszahlungs- und Einzahlungsmethoden:

public void withdraw(double withdrawAmount) {
    balance -= withdrawAmount;
}

public void deposit(double depositAmount) {
    balance  = depositAmount;
}
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3