2011-02-11 96 views
1

我想引用另一个类中的方法,并在我的其他类中使用该方法。目前,我得到的只是以下错误:非静态方法getBalance不能从静态上下文中引用。任何帮助将不胜感激java非静态方法getBalance不能从静态上下文中引用

public void bob() 
    { 
    return "Accountno.:" + super.toString() + Account.getBalance(); 
    } 
+0

您能否显示您描述的两个类的类结构? – MindBrain 2013-04-26 21:53:55

回答

4

getBalance是一种实例方法。该方法的要点是它为您提供了特定Account对象的余额,因此您需要一个Account实例才能在其上调用getBalance。当你调用由类名开头的方法时,这就是'静态上下文'的意思,这意味着你正在调用类的静态方法。

在技术上调用构造函数并在新对象上调用getBalance方法(如其他帖子所示)将会工作,但不会给你任何有用的数据。您需要了解如何获取您想要的账户(例如通过数据库查询)。

您是否想要继承Account?因为bob方法看起来很像一个toString,它会在Account中看到家中。如果您正在为账户划分子账户,那么您无需在012B之前预先拨打getBalance,而是可以使用this.getBalance()或只是getBalance(因为暗示this)。

+0

此外:如果您处于Account类的内部类(其中一个简单的`this`不起作用),您可以编写`Account.this.getBalance()`。 – 2011-02-11 22:25:56

2

您必须拥有一个用于调用getBalance()的对象实例。你打电话就像一个静态的mehod。这应该工作:

Account acc = new Account(); 
acc.getBalance(); 
0

这样做是有帐户,帐户的一个实例,并调用

Account account = new Account(); 
account.getBalance(); 

或声明的实现方法具为getBalance静态的正确方法。

0

您试图调用非静态方法,就好像它是静态的。假设您有一个类Account,则Account.getBalance()仅适用于静态getBalance()方法。您需要一个Account实例才能调用非静态getBalance()方法。

相关问题