”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 为什么我在 Java 中收到“无法对非静态字段进行静态引用”错误?

为什么我在 Java 中收到“无法对非静态字段进行静态引用”错误?

发布于2024-11-07
浏览:828

Why am I getting the \

避免“无法对非静态字段进行静态引用”错误

在Java编程中,“无法对非静态字段进行静态引用”错误尝试在静态方法中访问非静态字段(也称为实例变量)时,会发生“引用非静态字段”错误。

在提供的代码中,出现错误是因为 main 方法被声明为静态,这意味着它只能引用类的静态成员,包括静态方法和字段。然而,字段balance和annualInterestRate是非静态的,这意味着它们对于Account类的每个实例都是唯一的。

要解决此错误,有必要修改代码以遵循适当的Java语法:

  • > 删除对非静态字段的静态引用:

    • 引用应删除主方法中的balance和annualInterestRate,因为它们是通过对象引用访问的实例变量(例如account.getBalance()、account.getAnnualInterestRate())
  • > 制作非静态方法实例方法:

    • 取款和存款方法应该被声明为非静态,因为它们需要通过对象引用访问余额字段。这允许他们修改特定帐户实例的余额。

main 方法的修订代码:

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

修改提款和存款方法代码:

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

public void deposit(double depositAmount) {
    balance  = depositAmount;
}
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3