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

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

Linda Hamilton
Linda Hamilton原创
2024-10-30 18:47:31341浏览

Why am I getting the

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

在 Java 编程中,“无法对非静态字段进行静态引用”错误

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

在提供的代码中,出现该错误是因为 main 方法被声明为静态,意味着它只能引用类的静态成员,包括静态方法和字段。但是,字段balance和annualInterestRate是非静态的,这意味着它们对于Account类的每个实例都是唯一的。
  • 要解决此错误,需要修改代码以遵循适当的Java语法:

      >删除对非静态字段的静态引用:
  • 应删除主方法中对balance和annualInterestRate的引用,因为它们是通过对象引用访问的实例变量(例如account.getBalance) (), account.getAnnualInterestRate())
    • >;使非静态方法实例方法:
  • 提款和存款方法应声明为非静态,因为它们需要通过对象引用访问余额字段。这允许他们修改特定帐户实例的余额。

<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 class="java">public void withdraw(double withdrawAmount) {
    balance -= withdrawAmount;
}

public void deposit(double depositAmount) {
    balance += depositAmount;
}</code>
提款和存款方法的修订代码:

以上是为什么我在 Java 中收到“无法对非静态字段进行静态引用”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn