【问题标题】:array of objects and creation of objects in javajava中的对象数组和对象的创建
【发布时间】:2014-04-12 17:01:10
【问题描述】:

我需要创建一个对象(银行),其中包含一组客户和银行 ID。 我的问题是我不知道如何在 main 函数中创建银行。

银行类:

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");
   }
}

这就是问题所在:

您必须创建一个程序来模拟银行活动。该系统包括以下模块:银行-客户(客户数组)-idBank(字符串) 5 BancAccount — accountNumber (String) — amount (float) Client — name (String) — address (String) — 账户(BankAccount 数组;一个客户至少可以有一个账户,但不能超过五个账户)

【问题讨论】:

  • 发送给银行构造函数的 3 是什么?我以为你说银行需要大量客户?
  • 我写这个只是为了知道应该有什么(存储在数组中的客户端数量),我不知道该怎么做......

标签: java arrays


【解决方案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;
}

Clients 的数组相比,传递3 并没有多大意义。像这样声明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");

【讨论】:

  • 或者您可以简单地使用 Collections - 以 ArrayList 为例 - 以摆脱处理数组的繁琐工作。 List<Client> clients; 作为一个字段,你可以通过clients.add(client);添加到它
  • @NaderHadjiGhanbari 我本来会这样做,但 OP 显然才刚刚开始学习语言,这可能是一项家庭作业。我试图避免进入任何过于复杂的事物(例如泛型、集合等)。
猜你喜欢
  • 2020-03-14
  • 2021-07-30
  • 2020-12-17
  • 2019-10-28
  • 2011-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多