java中的对象数组和对象创建

时间:2014-04-12 17:01:10

标签: java arrays

我需要创建一个具有客户端和bankID数组的对象(银行)。 我的问题是我不知道如何在main函数中创建一个bank。

银行类:

public class Bank {
   Client[] client=new Client[20];
   String idBank;

   public Bank(Client[] client,String idBank) {
      this.client=client;
      this.idBank=idBank;
   }

   public Bank(Bank b) {
      b.client=client;
      b.idBank=idBank;
   }

客户端类:

public class Client {
   String name;
   String address;
   BancAccount[] banc=new BancAccount[50];

   public Client(String name,String address,BancAccount[] banc) {
      this.name=name;
      this.address=address;
      this.banc=banc;
   }

   public Client(Client c) {
      c.address=address;
      c.name=name;
      c.banc=banc;
   }
}

主要课程:

public class Lab5 {
   public static void main(String[] args) {
      Bank[] b1=new Bank(client[3],"14332");
   }
}

这就是问题所在:

您必须创建一个程序来模拟银行活动。该系统包括以下模块:Bank - clients(客户端数组) - idBank(String)  五 BancAccount - accountNumber(String) - amount(float)客户端 - 名称(字符串) - 地址(字符串) - 帐户(BankAccount数组;客户端至少可以拥有一个帐户,但不超过五个帐户)

1 个答案:

答案 0 :(得分:1)

让我们来看看你在做什么(没有错误的[]):

Bank b1 =new Bank(3,"14332"); //works, but BAD

现在,那不是很漂亮,是吗?我们来谈谈你的Bank课程。具体来说,这部分:

Client[] client=new Client[20];
public Bank(Client[] client,String idBank)
{
   this.client=client;
   this.idBank=idBank;
}

传递3而不是Client数组是没有意义的。你声明Client数组似乎很奇怪:

Client[] client=new Client[20];

但是,当调用Bank构造函数时,您可以强制将数组重新分配给其他内容。让我们添加另一个构造函数:

public Bank(int numClients,String idBank)
{
   client = new Client[numClients];
   this.idBank=idBank;
}

可能是一个强制最大客户端大小的addClient(Client c)方法,以及一个跟踪数组中当前索引的变量(基本上使其像ArrayList一样):

private int index = 0;
public void addClient(Client c) {
   if(index == client.length)
      return; //or throw an Exception, your choice here.
   client[index] = c;
   index++;
}

现在,如果您想让所有课程保持不变,那么您也可以在main()中执行以下操作:

Client[] clients = new Client[20]; //or whatever number of Clients is appropriate
//Code to instantiate Clients, whatever that may be
Bank = new Bank(new Client[]{}, "14332");