标签:
2练习1:创建一个简单的银行程序包
练习目标-Java 语言中面向对象的封装性及构造器的使用。
任务
在这个练习里,创建一个简单版本的(账户类)Account类。将这个源文件放入banking程序包中。在创建单个帐户的默认程序包中,已编写了一个测试程序TestBanking。这个测试程序初始化帐户余额,并可执行几种简单的事物处理。最后,该测试程序显示该帐户的最终余额。
1. 创建banking 包
2. 在banking 包下创建Account类。该类必须实现上述UML框图中的模型。
3. 编译TestBanking.java文件。
4. 运行TestBanking类。可以看到下列输出结果:
Creating an account with a 500.00 balance
Withdraw 150.00
Deposit 22.50
Withdraw 47.62
The account has a balance of 324.88
练习2
练习目标-使用引用类型的成员变量:在本练习中,将扩展银行项目,添加一个(客户类)Customer类。Customer类将包含一个Account对象。
任务
a. 声明三个私有对象属性:firstName、lastName和account。
b. 声明一个公有构造器,这个构造器带有两个代表对象属性的参数(f和l)
c. 声明两个公有存取器来访问该对象属性,方法getFirstName和getLastName返回相应的属性。
d. 声明setAccount 方法来对account属性赋值。
e. 声明getAccount 方法以获取account属性。
Creating the customer Jane Smith.
Creating her account with a 500.00 balance.
Withdraw 150.00
Deposit 22.50
Withdraw 47.62
Customer [Smith, Jane] has a balance of 324.88
练习3:修改withdraw 方法
练习目标-使用有返回值的方法:在本练习里,将修改withdraw方法以返回一个布尔值来指示交易是否成功。
任务
1. 修改Account类
2. 在exercise2主目录编译并运行TestBanking程序,将看到下列输出;
Creating the customer Jane Smith.
Creating her account with a 500.00 balance.
Withdraw 150.00: true
Deposit 22.50: true
Withdraw 47.62: true
Withdraw 400.00: false
Customer [Smith, Jane] has a balance of 324.88
练习4:用数组表示多重性
练习目标-在类中使用数组作为模拟集合操作: 在本练习中,将用数组实现银行与客户间的多重关系。
任务
对银行来说,可添加Bank类。 Bank 对象跟踪自身与其客户间的关系。用Customer对象的数组实现这个集合化的关系。还要保持一个整数属性来跟踪银行当前有多少客户。
Customer [1] is Simms,Jane
Customer [2] is Bryant,Owen
Customer [3] is Soley,Tim
Customer [4] is Soley,Maria
练习4:用List表示多重性
练习目标-在类中使用List作为模拟集合操作: 在本练习中,将用List实现银行与客户间的多重关系。
任务
对银行来说,可添加Bank类。 Bank 对象跟踪自身与其客户间的关系。用Customer对象的List实现这个集合化的关系。还要保持一个整数属性来跟踪银行当前有多少客户。
Customer 1 is Simms,Jane
Customer 2 is Bryant,Owen
Customer 3 is Soley,Tim
Customer 4 is Soley,Maria
当前客户数量 = 4
第一小问:
package com.banking; public class Account { //属性 private double balance; //构造方法 Account(int balance) { this.balance=balance; } public Account() { super(); } //成员方法 public double getBalance() { return this.balance; } public double deposit(double amt) { this.balance+=amt; return amt; } public double withdraw(double amt) { this.balance-=amt; return amt; } }
测试:
package com.banking; public class Test01 { public static void main(String[] args) { Account ac=new Account(500); System.out.println("取款金额:"+ac.withdraw(150)); System.out.println("存款金额:"+ac.deposit(22.5)); System.out.println("取款金额:"+ac.withdraw(47.62)); System.out.println("剩余金额:"+ac.getBalance()); } }
结果:
第二小问:
package com.banking; public class Customer { private String firstName; private String lastName; private Account account; Customer(String f,String l) { this.firstName=f; this.lastName=l; } @Override public String toString() { return firstName + "," + lastName ; } public Account getAccount() { return account; } public void setAccount(Account acct) { this.account = acct; } public String getFirstName() { return firstName; } public String getLastName() { return lastName; } }
测试:
package com.banking; public class Test02 { public static void main(String[] args) { Customer cu=new Customer("Jane","Smith"); System.out.println("Creating the customer"+" "+cu.getFirstName()+" "+cu.getLastName()); cu.setAccount(new Account(500)); // cu.setAccount(ac); // cu.getAccount(); System.out.println("取款金额:"+cu.getAccount().withdraw(150)); System.out.println("存款金额:"+cu.getAccount().deposit(22.5)); System.out.println("取款金额:"+cu.getAccount().withdraw(47.62)); System.out.println("剩余金额:"+cu.getAccount().getBalance()); } }
结果:
第四小问:
package com.banking; import java.util.ArrayList; import java.util.List; public class Bank { //定义属性 private List<Customer> customer; private int numberOfCustomers; //构造器 public Bank(){ customer=new ArrayList<>(); } //定义方法,添加数据 public void addCustomer(String f,String l){ Customer cu=new Customer(f,l); customer.add(cu); } //获取数组个数 public int getNumOfCustomers(){ return customer.size(); } public Customer getCustomer(int index){ return customer.get(index); } }
测试:
package com.banking; import java.util.Iterator; import java.util.List; public class TestBank { public static void main(String[] args) { Bank ba=new Bank(); ba.addCustomer("Simms","Jane"); ba.addCustomer("Bryant","Owen"); ba.addCustomer("Soley","Tim"); ba.addCustomer("Soley","Maria"); for(int i=0;i<ba.getNumOfCustomers();i++){ System.out.println("Customer "+(i+1)+" is "+ba.getCustomer(i)); } System.out.println("当前客户数量="+ba.getNumOfCustomers()); } }
结果:
标签:
原文地址:http://www.cnblogs.com/tfl-511/p/5906946.html