练习:用List表示多重性

练习目标-在类中使用List作为模拟集合操作: 在本练习中,将用List实现银行与客户间的多重关系。

任务:对银行来说,可添加Bank类。 Bank 对象跟踪自身与其客户间的关系。用Customer对象的List实现这个集合化的关系。还要保持一个整数属性来跟踪银行当前有多少客户

1、创建 Bank

2、Bank类增加两个属性:customers(Customer对象的List)和numberOfCustomers(整数, 当前Customer对象的数量)

3、添加公有构造器,初始化customersList

4、添加addCustomer方法。该方法必须依照参数(姓,名)构造一个新的Customer对象然后把它放到customerList中。

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

当前客户数量 = 4

import java.util.ArrayList;
import java.util.List; public class Bank{
private List<Customer> customers; //customers集合
private int numberOfCustomers; //记录客户数量
public Bank(){ //构造方法,初始化customers
customers=new ArrayList<Customer>();
}
public void addCustomer(String f,String l){ //方法:往customers里面添加Customer对象
Customer p=new Customer(f,l);
customers.add(p);
}
public int getNumOfCustomers(){ //获取客户数量,即获取customers的长度
numberOfCustomers=customers.size();
return numberOfCustomers;
}
public Customer getCustomer(int index){ //根据索引取值return customers.get(index);
  }
}
public class TestBanking {
public static void main(String[] args) {
Bank cus=new Bank(){};
cus.addCustomer("Simms", "Jane");
cus.addCustomer("Bryant", "Owen");
cus.addCustomer("Soley","Tim");
cus.addCustomer("Soley","Maria");
for(int i=0;i<cus.getNumOfCustomers();i++){
System.out.println("Customer "+(i+1)+" is"+" "+cus.getCustomer(i));
}
System.out.println("当前客户数量="+cus.getNumOfCustomers());
System.out.println("第二个客户是:"+cus.getCustomer(2));
}
}

运行结果:

Customer类:

public class Customer {
//声明私有属性
private String firstName;
private String lastName;
private Account account;
//声明构造器
Customer(){};
Customer(String f,String l){
this.firstName=f;
this.lastName=l;
}
//声明存取器getter/setter方法
public String getFirstName() { //firstName
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() { //lastName
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
//存取器getter/setter方法——account
public Account getAccount() {
return account;
}
public void setAccount(Account acct) {
this.account=acct;
}
@Override
public String toString() {
return firstName + "," + lastName;
}
}

最新文章

  1. 如何修改WAMP中mysql默认空密码
  2. MySQL模糊查询(like)时区分大小写
  3. SQL Server 无法在服务器上访问指定的路径或文件解决方法
  4. SQL基础(1)-创建及修改表
  5. phpcms v9 源码解析-1 index.php
  6. 2016.10.30 济南学习 Day2 下午 T1
  7. JAVASCRIPT实现XML分页
  8. [置顶] 蓝牙基础知识进阶——Physical channel
  9. 版本控制工具Vault v7.0更新内容曝光【慧都独家】
  10. IOS 微信
  11. 浅谈python lambda
  12. Redis常用命令--Sets
  13. shell练习题3
  14. oracle 查询所有约束
  15. Taro之百度地图显示定位点和信息
  16. 如何用命令将本地项目上传到git[z]
  17. Zabbix 监控服务
  18. SegmentedControlIOS使用
  19. 博客 first
  20. cmake-include_directories

热门文章

  1. unity3d - new 不出的单例
  2. redis与memcached比较
  3. search--搜索引擎的使用笔记
  4. eclipse编码格式设置教程、如何为eclipse设置编码格式?
  5. three.js 之旅 (五)--跟场景scene相关的函数
  6. 用js识别是否360浏览器
  7. 校验两次密码一致的js代码
  8. FreeMarker与Spring MVC的结合应用
  9. 学习WCF之——wcf程序的创建
  10. 求教——使用node做表单,刷新浏览器页面,浏览器为什么会重复提交上次所填的信息