第六次 java实验 紫金学院 泛型02
- 类结构如图所示。
- 将类结构以代码形式表示,并对方法和构造器提供合理的实现;
- 使用TestBanking类对代码进行测试。
1.创建类 Account 按要求创建四个方法
package test06;public class Account {double balance;public void Account(double balance) {this.balance = balance;}public boolean deposit(double amount) {balance += amount;return true;}public boolean withdraw(double amount) {if (amount <= balance) {balance -= amount;return true;} else {return false;}}public double getBalance() {return balance;}
}
2.创建类 SavingAccount 按要求创两个方法
package test06;public class SavingAccount extends Account {private double rate;public SavingAccount(double balance, double rate) {super();this.rate = rate;}
}
3.创建类 CheckingAccount 按要求创两个方法
package test06;public class CheckingAccount extends Account {double overdraft;public CheckingAccount(double balance, double overdraft) {super();this.overdraft = overdraft;}public CheckingAccount(double balance) {this(balance, 0.0);}public boolean withdraw(double amount) {if (amount <= balance) {balance -= amount;return true;} else if (amount <= balance + overdraft) {overdraft -= (amount - balance);balance = 0;return true;} else return false;}public double getOverdraft() {return overdraft;}
}
4.创建类 Bank
package test06;import java.util.HashMap;public class Bank {private HashMap customers;private int custNum;public Bank() {customers = new HashMap();custNum = 0;}public void addCustomer(Customer customer) {customers.put(new Integer(custNum + 1), customer);custNum++;}public Customer getCustomer(int index) {if (index >= 1 && index <= custNum) {return (Customer) (customers.get(new Integer(index)));}else {return null;}}public HashMap getAllCustomer() {return customers;}public int getCustomerNum() {return custNum;}
}
5.创建类 Customer
package test06;import java.util.ArrayList;public class Customer {private String name;private ArrayList accounts = new ArrayList();public Customer(String name) {this.name = name;}public String getName() {return name;}public void addAccount(Account account) {accounts.add(account);}public Account getAccount(int index) {return (Account) (accounts.get(index - 1));}public ArrayList getAllAccount() {return accounts;}
}
6.创建test
package test06;public class TestBanking {public static void main(String[] args) {Bank bank = new Bank();bank.addCustomer(new Customer("ZhaoLong"));bank.addCustomer(new Customer("ZJJ"));Customer cust1 = bank.getCustomer(1);Customer cust2 = bank.getCustomer(2);cust1.addAccount(new SavingAccount(999999.0, 2.1));cust1.addAccount(new CheckingAccount(999999.0, 1.0));cust2.addAccount(new CheckingAccount(999999.0, 20.0));Account acc1 = cust1.getAccount(1);System.out.println(cust1.getName() + "的余额为:" + acc1.getBalance());acc1.deposit(88888.0);System.out.println(cust1.getName() + "的余额为: " + acc1.getBalance());acc1.withdraw(99999.0);System.out.println(cust1.getName() + "的余额为:" + acc1.getBalance());acc1.withdraw(99999.0);System.out.println(cust1.getName() + "'的余额为:" + acc1.getBalance());CheckingAccount acc2 = (CheckingAccount) cust1.getAccount(2);System.out.println(cust1.getName() + "的余额为: " + acc2.getBalance() + " 透支是: " + acc2.getOverdraft());acc2.deposit(88888.0);System.out.println(cust1.getName() + "的余额为:" + acc2.getBalance() + " 透支是: " + acc2.getOverdraft());acc2.withdraw(99999.0);System.out.println(cust1.getName() + "的余额为:" + acc2.getBalance() + " 透支是:" + acc2.getOverdraft());acc2.withdraw(99909.0);System.out.println(cust1.getName() + "的余额为:" + acc2.getBalance() + " 透支是: " + acc2.getOverdraft());acc2.withdraw(90000.0);System.out.println(cust2.getName() + "的余额为:" + acc2.getBalance() + " 透支是: " + acc2.getOverdraft());CheckingAccount acc3 = (CheckingAccount) cust2.getAccount(1);System.out.println(cust2.getName() + "的余额为: " + acc3.getBalance() + " 透支是:" + acc3.getOverdraft());acc3.deposit(99000.0);System.out.println(cust2.getName() + "的余额为: " + acc3.getBalance() + " 透支是: " + acc3.getOverdraft());acc3.withdraw(20000.0);System.out.println(cust2.getName() + "的余额为:" + acc3.getBalance() + " 透支是: " + acc3.getOverdraft());acc3.withdraw(3000.0);System.out.println(cust2.getName() + "的余额为:" + acc3.getBalance() + " 透支是: " + acc3.getOverdraft());acc3.withdraw(10000.0);System.out.println(cust2.getName() + "的余额为:" + acc3.getBalance() + " 透支是: " + acc3.getOverdraft());}
}
运行截图如下:
第六次 java实验 紫金学院 泛型02相关推荐
- 第六次 java实验 紫金学院 泛型01
使用TreeSet和Comparator,编写TreeSetTest2类,要求对TreeSet中的元素1-元素10进行排列,排序逻辑为奇数在前偶数在后,奇数按照升序排列,偶数按照降序排列. Java ...
- 第八次 java实验 紫金学院 输入/输出流
一.实验目的 熟悉流--输入/输出流的基本概念. 掌握常用输入/输出流的使用. 掌握文件与文件字节流操作(重点). 二.实验原理及说明 在Java中把不同的数据源和程序间的数据传输(输入和输出或者数据 ...
- 第七次 java实验 紫金学院 异常
好久没更新了,在准备期末考,忘记更新了,今日就直接出代码,有不懂的可以私信我 前面是重点和难点,如果想搞明白的可以先看前面的 如果了解单纯想看代码请移驾--> 一.实验目的 熟悉异常的基本概念. ...
- 第六周java实验报告四
实验报告: 一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:rad ...
- java实验报告实验六,第六周java实验报告四
实验四 实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆的半径. 2. ...
- java校内报纸实验报告_第六周Java实验报告四
---恢复内容开始--- 一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成 ...
- 第五次实验 紫金学院 集合框架3
使用TreeSet和Comparator,编写TreeSetTest类,要求对TreeSet中的元素"HashSet"."ArrayList"."Tr ...
- 第五次实验 紫金学院 集合框架2
2. 写MyStack类,实现栈功能,要求在类中使用ArrayList保存数据.写MyStackTest类对栈功能进行测试. 本节实训主要是对栈的操作, 对栈和队列操作已经在数据结构那个专题里面有了, ...
- 第五次实验 紫金学院 集合框架1
写MyQueue类,实现队列功能,要求在类中使用ArrayList保存数据.写MyQueueTest类对队列功能进行测试. 咱们就直接上代码吧,内容很详细了,结合前面的几次实训,本事实训也是很简单的. ...
最新文章
- cmd 文本替换_将CMD信息保存为文件
- Nginx SSL 配置
- C语言两种查找方式(分块查找,二分法)
- Docker Compose 配置文件详解
- Ext.Net中常用的验证
- 开始→运行→命令集锦
- string会传null吗_JVM 解剖公园(10): String.intern()
- hdu 2141 Can you find it(二分)
- 手机MODEM 开发(23)---Modem1 NVRAM基础知识总结
- 卷积神经网络工作原理直观的解释
- L1-02-yum源的配置(本地源)
- 洛谷P2671 求和 数学 前缀和
- 解决Appium-windows安装时无法自动下载Appium-Desktop
- Ubuntu出现Failed to Fetch的解决办法
- Linux公社FTP服务器地址及用户名密码
- Python实现b''开头二进制字符串转换为str的utf-8
- dorado 刷新_记录新建dorado项目更新规则中报错
- 实参高阶函数和装饰器
- 怎么画地铁图 java_创建地铁图-地铁图显示-开发指南-地铁图 JS API | 高德地图API...
- SQL 判断字段是否为中文、字母、数字