基于上一个实验Banking_5 ,代码先全部复制过来.
笔记心得:
1.SavingAccount() 需要两种构造方法,接受单个参数和两个的 2.Account 有两个类型 SavingAccount 和 CheckingAccount ,每个人都有两个或一个 ,
setAccount(Account account,int id) ,id=1 表示设置前者, id=2表示设置后者. 3.在 public class CustomerReport{}中 ,首先调用static Bank : Bank bank=Bank.getBank();
然后遍历其中元素, 可能存在只有一个账户,所以需要特判一下:
if(customer.getSavingAccount()!=null) 和if(customer.getCheckingAccount()!=null) ,解决这个空内存 的异常!
实验要求:
实验目的: 单例模式。 提示: 1. 修改 Bank 类,创建名为 getBanking 的公有静态方法,它返回一个 Bank 类的实例。 2. 单个的实例应是静态属性,且为私有。同样,Bank 构造器也应该是私有的 创建 CustomerReport 类 1.在前面的银行项目练习中,“客户报告”嵌入在 TestBanking 应用程序的 main 方法中。在这个练习中,改代码被放在,banking.reports 包的 CustomerReport 类中。您的任务是修改这个类,使其使用单一银行对象。 2. 查找标注为注释块/*** ***/的代码行.修改该行以检索单子银行对象。
文件工程组织: (基于上一个实验Banking_5 ,代码 先 全部复制过来,然后再具体改改.)
具体代码:
Bank.java (构造器方法私有化,private static Bank bank=new Bank();)
package Banking_6; //要求使bank实现单例模式 public class Bank { private Customer[] customers ; //用于存放客户 private int numberofCustomers; //用于记录Customer的个数 private Bank(){ ///构造器方法私有化 numberofCustomers=0; customers = new Customer[100]; ///这里记得要初始化!不然要发生java.lang.NullPointerException } private static Bank bank=new Bank(); public static Bank getBank(){ return bank; } public void addCustomer(String f,String l){ int i= this.numberofCustomers; customers[i]=new Customer(f,l);//新建一个构造对象 this.numberofCustomers++; } public int getNumOfCustomers() { return numberofCustomers; } public Customer getCustomer(int index) { return customers[index]; } }