Java 错误:“无法对非静态字段进行静态引用”
尝试访问非静态字段时会出现此错误静态方法中的静态字段。在Java中,静态方法属于类,只能访问静态变量,而非静态方法(实例方法)属于类的实例,既可以访问静态变量,也可以访问非静态变量。
中在您的代码中,主方法是静态的,它尝试调用非静态的提款和存款方法。该错误表明您正在尝试从静态上下文中引用余额字段。
解决方案:
要解决此问题,您需要使取款和存款方法也是静态的。但是,不建议修改原始方法,因为它们旨在对特定帐户实例进行操作。相反,请在主方法中创建这些方法的重载版本。
以下是更新后的代码:
<code class="java">public class Account { // Static variables public static int id = 0; public static double annualInterestRate = 0; public static java.util.Date dateCreated; // Non-static variables private double balance = 0; public static void main(String[] args) { // Create an instance of Account Account account = new Account(1122, 20000, 4.5); // Overloaded methods (static) double newBalance = withdraw(account.balance, 2500); newBalance = deposit(newBalance, 3000); System.out.println("Balance is " + account.getBalance()); System.out.println("Monthly interest is " + (account.annualInterestRate / 12)); System.out.println("The account was created " + account.getDateCreated()); } // Overloaded methods public static double withdraw(double balance, double withdrawAmount) { balance -= withdrawAmount; return balance; } public static double deposit(double balance, double depositAmount) { balance += depositAmount; return balance; } }</code>
通过创建静态重载方法,您现在可以在主方法中访问余额字段。这些重载方法以当前余额为参数,执行操作,并返回更新后的余额。
以上是为什么我收到 Java 错误“无法对非静态字段进行静态引用”?的详细内容。更多信息请关注PHP中文网其他相关文章!