类中的方法不能应用于给定的类型

时间:2015-01-18 20:53:17

标签: java methods

我正在尝试创建一个方法,该方法在接收器类和参数类之间取得平衡差异的50%,并将其提供给参数类。

到目前为止,我有:

private boolean lastReceived;    
private boolean lastGiven;    
public Account account;


/**
* Constructor for objects of class MoneyFrog
*/
public MoneyFrog(String holderName, String accountNumber, double anAmount)
{
    super();
    this.lastReceived = false;
    this.lastGiven = false;
    this.account = new Account();
    this.account.setHolder(holderName);
    this.account.setNumber(accountNumber);
    this.account.setBalance(anAmount);
    super.setColour(OUColour.GREEN);
} 

/**
 * Getter method for the Account variable account
 */
public Account getAccount(Account account)
{
    return this.account;
}

/**
 * Method to transfer the 50% of the difference between the balance of the 
 * receiver MoneyFrog and the argument MoneyFrog to the argument MoneyFrog.
 */
public void transfer(MoneyFrog moneyFrog)
{
 this.getAccount().transfer(moneyFrog.getAccount(),this.getAccount().getBalance()/2);
}

但代码 .getAccount ()会抛出错误 "类MoneyFrog中的getAccount方法不能应用于给定的类型;要求:帐户; 发现:没有争论; 原因:实际和正式的参数列表长度不同"

有人可以告诉我为什么方法getAccount不能在这里应用吗?或者我应该采取什么其他方式?

2 个答案:

答案 0 :(得分:2)

查看方法签名:

public Account getAccount(Account account)
                             ↑

期望类型为Account的对象,你不能写:

this.getAccount()

没有参数。根据你的课程,我认为你不需要将Account对象传递给方法,因此从方法定义中删除它应该可以解决你的问题。

我强烈建议您访问The Java™ Tutorials - Defining Methods以更好地了解Java的基本概念。

答案 1 :(得分:-1)

   /**
    * Getter method for the Account *field* account
    */
   public Account getAccount()
   {
     return this.account;
    }