Maison >Java >javaDidacticiel >Pourquoi est-ce que j'obtiens l'erreur « Impossible de faire une référence statique à un champ non statique » en Java ?
Éviter l'erreur « Impossible de créer une référence statique à un champ non statique »
Dans la programmation Java, le « Impossible de créer une référence statique à un champ non statique » "Une erreur de référence à un champ non statique" se produit lorsque vous essayez d'accéder à un champ non statique (également appelé variable d'instance) dans une méthode statique.
Dans le code fourni, l'erreur se produit car la méthode principale est déclaré comme statique, ce qui signifie qu'il ne peut faire référence qu'aux membres statiques de la classe, y compris les méthodes et les champs statiques. Cependant, les champs balance et annualInterestRate ne sont pas statiques, ce qui signifie qu'ils sont uniques à chaque instance de la classe Account.
Pour résoudre cette erreur, il est nécessaire de modifier le code pour suivre la syntaxe Java appropriée :
> Supprimer les références statiques aux champs non statiques :
> Créer des méthodes d'instance de méthodes non statiques :
Code révisé pour la méthode principale :
<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>
Code révisé pour les méthodes de retrait et de dépôt :
<code class="java">public void withdraw(double withdrawAmount) { balance -= withdrawAmount; } public void deposit(double depositAmount) { balance += depositAmount; }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!