在我的驱动程序中,这一行代码给我一个"cannot find symbol"的错误,我不知道为什么。这个方法在"SavingsAccount"类中被明确定义了,我可以在我的驱动程序中引用所有其他的方法,但就是不能用那个方法,我尝试将类型改成"double"等,但还是不起作用。
Account acct2 = new SavingsAccount (name);
acct2.calculateBalance();
SavingsAccount
类继承自 Account
类:
public class SavingsAccount extends Account
{
private final short minBalance = 0;
private double overdraftFee;
private double yearlyInterestRate = 0.02;
private double interestAmount;
public SavingsAccount (String name)
{
super(name);
}
public double withdraw (double amount)
{
if (accountBalance - amount >= minBalance)
{
accountBalance -= amount;
System.out.print ("Withdraw Successful");
}
else
{
accountBalance -= amount;
overdraftFee = accountBalance * (0.10);
accountBalance += overdraftFee;
System.out.print ("Withdraw Succesful, however overdraft fee of 10% has been applied to your account");
}
return accountBalance;
}
// ----------------- this is the method I try to invoke -----------------------------
public void calculateBalance ()
{
interestAmount = (accountBalance * yearlyInterestRate);
accountBalance += interestAmount;
}
// ----------------------------------------------------------------------------------
public String toString()
{
return super.toString() + " Interest Received: " + interestAmount;
}
}
如有需要,可以使用Account类
import java.util.Random;
import java.text.NumberFormat;
public abstract class Account
{
protected double accountBalance;
protected long accountNumber;
protected String accountHolder;
public Account (String name)
{
accountHolder = name;
accountBalance = 0;
Random accountNo = new Random();
accountNumber = accountNo.nextInt(100000);
}
public double deposit (double amount)
{
accountBalance += amount;
return accountBalance;
}
public String toString()
{
NumberFormat accountBal = NumberFormat.getCurrencyInstance();
return "Account Balance: " + accountBal.format(accountBalance) + "\nAccount Number: " + accountNumber;
}
public String getAccountHolder()
{
return accountHolder;
}
public double getAccountBalance()
{
return accountBalance;
}
public abstract double withdraw (double amount);
}