用数组表示多重性
用数组表示多重性
练习目标-在类中使用数组作为模拟集合操作: 在本练习中,将用数组实现银行与客户间的多重关系。
任务
对银行来说,可添加Bank类。 Bank 对象跟踪自身与其客户间的关系。用Customer对象的数组实现这个集合化的关系。还要保持一个整数属性来跟踪银行当前有多少客户。
1.创建 Bank 类
2.为Bank类增加两个属性:customers(Customer对象的数组)和numberOfCustomers(整数,跟踪下一个customers数组索引)
3.添加公有构造器,以合适的最大尺寸(至少大于5)初始化customers数组。
4.添加addCustomer方法。该方法必须依照参数(姓,名)构造一个新的Customer对象然后把它放到customer数组中。还必须把numberofCustomers属性的值加1。
5.添加getNumOfCustomers 访问方法,它返回numberofCustomers属性值。
6.添加getCustomer方法。它返回与给出的index参数相关的客户。
7.编译并运行TestBanking程序。可以看到下列输出结果:
Customer [1] is Simms,Jane
Customer [2] is Bryant,Owen
Customer [3] is Soley,Tim
Customer [4] is Soley,Maria
//Bank类
package banking;
public class Bank {
private Customer[] customers;
private int numberOfCustomers;
public Bank() {
super();
this.customers= new Customer[6];
}
public void addCustomer(String f,String l)
{
numberOfCustomers++;
customers[numberOfCustomers]=new Customer(f,l);
}
public int getNumOfCustomers ()
{
return numberOfCustomers;
}
public Customer getCustomer()
{
return customers[numberOfCustomers];
}
}
//TestBanking类
package banking;
public class TestBanking {
public static void main(String[] args) {
Bank bk=new Bank();
bk.addCustomer( "Simms" , "Jane" );
System.out.println("Customer ["+bk.getNumOfCustomers()+"]"+"is "+bk.getCustomer().getFirstName()+","+bk.getCustomer().getLastName());
bk.addCustomer( "Bryant" , "Owen" );
System.out.println("Customer ["+bk.getNumOfCustomers()+"]"+"is "+bk.getCustomer().getFirstName()+","+bk.getCustomer().getLastName());
bk.addCustomer( "Soley" , "Tim" );
System.out.println("Customer ["+bk.getNumOfCustomers()+"]"+"is "+bk.getCustomer().getFirstName()+","+bk.getCustomer().getLastName());
bk.addCustomer( "Soley" , "Maria" );
System.out.println("Customer ["+bk.getNumOfCustomers()+"]"+"is "+bk.getCustomer().getFirstName()+","+bk.getCustomer().getLastName());
}
}
//运行结果
Customer [1]is Simms,Jane
Customer [2]is Bryant,Owen
Customer [3]is Soley,Tim
Customer [4]is Soley,Maria