这是一个家庭作业问题,当我运行测试仪时,它给了我无效的指针异常。错误似乎在我的行中
balance[i]=InitialBalance;
 
public class Bank
{
private BankAccount[] accounts;
private double [] balance;
int NumbersOfBankAccount;
double InitialBalance;
public Bank (int x, double y )
{
NumbersOfBankAccount = x;
InitialBalance = y;
}
/**
* This method will get balance of specified bank account.
*/
public double getBalance(int index)
{
for(int i = 0; i <NumbersOfBankAccount; i++)
{
balance[i]=InitialBalance;
}
System.out.println(balance);
return balance[index];
}
}
balance
和 accounts
永远不会初始化。
您在构造函数中缺少这样的东西:
balance = new double[NumbersOfBankAccount];
accounts = new BankAccount[NumbersOfBankAccount];
balance
未初始化。
private double [] balance;
这是一个修复:
public Bank (int x, double y )
{
NumbersOfBankAccount = x;
balance = new double[NumbersOfBankAccount];
accounts = new BankAccount[NumbersOfBankAccount];
InitialBalance = y;
}
另外, NumbersOfBankAccount
是一个长名,繁琐打字。您应该将其更改为numAccounts
或类似的东西。
和另一件事:按照惯例,变量名称通常以小写字母开头。(InitialBalance
应为initialBalance
)
dint初始化余额;数组并尝试访问其索引。
您必须像这样发起您的数组:
private double [] balance = new double[sizeofyour array] ;
您必须先初始化数组'余额':
balance = new double[ NumbersOfBankAccount ];
您需要确保您的数字至少与余额数组一样大。您记得初始化数组吗?也看起来不像您正在使用帐户数组。
另外,请查看您的掌握方法的评论。我不认为它在做您想做的事情。看起来您想使用传递的索引来获取帐户数组指定的帐户的余额。还是您要进行测试循环(可以)?
所以回顾:
- 确保您的数组是初始化的
- 确保您从正确的数组中获取数据