编程分配:方法应该使用什么数据类型来返回数组和错误?

时间:2018-02-03 18:49:26

标签: java class methods

我有以下代码:

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对象,它应返回什么类型?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:-1)

  

为什么找不到BankAccount对象......

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

  

......它应该返回什么类型?

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

请注意,要发出获取帐户的错误信号,您通常不会返回某些内容*,而是抛出错误(“例外”)。

旁注:永远不要这样做:

bank = new BankAccount[10];

然后再

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

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

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

* (他说的非常普遍,并且允许每条规则都有例外情况)