关于java:编程赋值:方法应该返回一个数组和错误的方法是什么数据类型?

Programming Assignment: What data type should method be to return an array and error in method?

我有以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Bank
{
   private BankAccount[] bank;
   private int pointer = 0;
   public Bank()
   {
      bank = new BankAccount[10];
   }


   public void addAccount(BankAccount bankAccount)
   {
      for(int pointer = 0; pointer <= 10; pointer ++)
      {
         bank[pointer] = bankAccount;
      }
   }


   public type getAccount(int i)
   {
      return BankAccount[i];
   }

getAccount方法的返回导致了我的问题。

该方法的要求如下:

  • 给定整数索引值作为参数,getAccount方法将返回BankAccount对象。

BankAccount对象位于另一个类中并且工作正常。 我收到了BankAccount无法找到胡萝卜符号的错误。 我不知道为什么会这样。

所以我的问题是:为什么不找到BankAccount对象,它应该返回什么类型?


好吧,你的getAccount方法应该返回一个BankAccount类型(使用bank对象。所以,它应该是这样的:

1
2
3
4
   public BankAccount getAccount(int i)
   {
      return bank[i];
   }


Why isn't it finding the BankAccount object...

因为没有BankAccount对象。有一个BankAccount类,但它的实例(对象)保存在bank中。这就是你想从中得到它们的地方。

...and what type should it return?

嗯,该方法的目的是获取帐户,因此您的代码中有一种类型适合该帐户。 (是的,我故意模糊不清,因为如果我帮助你到达那里而不是仅仅告诉你,那对你来说会更有价值。)

请注意,要发出获取帐户的错误信号,通常不会返回*,而是会抛出错误("异常")。

旁注:永远不要这样做:

1
bank = new BankAccount[10];

然后

1
for(int pointer = 0; pointer <= 10; pointer ++)

首先,你的循环太过分了(该数组中没有bank[10]条目)。第二,如果你改变bank的长度,现在你必须在两个地方做。而不是<= 10,使用< bank.length

1
for(int pointer = 0; pointer < bank.length; pointer ++)

*(他说非常普遍,并允许每个规则都有例外)