我需要创建一个具有客户端和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数组;客户端至少可以拥有一个帐户,但不超过五个帐户)
答案 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");