1

好的,所以我有一个名为 MonthlyReport 的驱动程序类,它从 2 个不同的 .dat 文件中读取数据,一个包含有关帐户的信息,另一个包含有关客户的信息。在我的驱动程序类中,我创建了 2 个对象数组,分别存储有关帐户和客户的信息。问题是,一旦我将客户数据发送到客户类,我不确定如何指定每个客户属于哪个帐户,并且无法根据他们的身份修改他们帐户中的信息。

所以基本上,我想访问其客户的相应帐户对象,但我不确定如何从 Customer 类访问在 MonthlyReport 中创建的对象。这更像是一个概念问题,我不需要代码,因为我需要设计建议。如果有助于回答问题,我可以添加一些代码。提前致谢。

  public class MonthlyReport() {
       public static void main(String args[]){

             //reading in account data here

             Account a = new Account(accountNumber, accountType, balance, openingDates, aprAdjustment, feeAdjustment);
             accounts[i]=a;

             //reading in customer data here

             Customer c = new Customer(customerID, firstName, lastName, mailingAddress, emailAddress, flag, accountNum);
             customers[i]= c;

        }
   }
4

2 回答 2

2

您可以编写一个包含两种数组数据类型的自定义类,并将 .dat 文件中的信息组合到这种新类型的数组中

public class CustomerAccounts
{
    public Account[] Account {get; set;}
    public Customer Customer {get; set;}
}


public class MonthlyReport() {
   public static void main(String args[]){

         CustomerAccounts[] allData = new CustomerAccounts[totalCustomers];

         //Read in customers
         for (i = 0; i < totalCustomers; i++)
         {
               Customer c = new Customer(customerID, firstName, lastName, mailingAddress, emailAddress, flag, accountNum);
               CustomerAccounts customerAccount = new CustomerAccounts()'
               customerAccount.customer = c;
               allData [i] = customerAccount;

         }

         for (i = 0; i < totalAccounts; i++)
         {
              Account a = new Account(accountNumber, accountType, balance, openingDates, aprAdjustment, feeAdjustment);

              //Look up customer account belongs to to get index in all data array
              int index = lookupIndex();

              CustomerAccounts customerAccount = allData [index];
              int numberOfAccounts = customerAccount.accounts.count;
              allData [index].accounts[numberOfAccounts] = a;
         }
    }
于 2012-10-01T01:48:16.867 回答
1

另一个问题是每个人都Customer可以有多个帐户。

Customer假设在和Account细节之间是一对多的关系,MonthlyReport应该持有对 a 的引用Map<Customer, List<Account>> data

附录:当您阅读客户文件并Customer在您的 中累积实例时MapList<Account>for each 最初将为空。同时,将每个添加CustomerMap<AccountNumber, Customer> index. 稍后,当您阅读帐户文件时,您可以使用index查找Customer每个新帐户记录,然后将其添加到该客户的List<Account>.

于 2012-10-01T01:55:41.047 回答