题目类别: 实验
关键字: 对象类型转换、覆盖、继承、多态
内容要求:
要求编写程序模拟银行账户的存、取款操作。按要求完成以下步骤:
步骤 1:编写程序 Account.java,其中定义银行账户类 Account。该类中有账号、姓名、存款余额等数据域,余额默认是 0;有存款、取款、获取当前余额等方法。其中账号为长度为 12 位数字的字符串,姓名为字符串,存款余额为 double。
步骤 2:编写名为 CreditAccount 类的信用卡账户类。该类继承自 Account 类,增加一个透支限额(double)数据域,透支限额默认为 1000。同时该类账户取款时允许透支,但不能超过透支限额。
步骤 3:编写名为 SavingAccount 的储蓄账户类 SavingAccount。该类继承自 Account 类。该类账户取款时不允许透支。
步骤 4:编写名为 Bank 的模拟银行类,其中可以存储多个类型可能是信用卡账户或储蓄账户的对象(可以用数组或 ArrayList 实现)。该类包含以下方法:
开户:即增加一个新的账户,注意:不允许两个账户的账号相同
销户:即删除一个已有的账户
查询账户:根据一个账号,查询有无该账号的账户
统计目前银行的存款总余额的方法。
统计目前银行的信用卡账户总透支金额的方法。
统计目前总账户数。
统计目前信用卡账户数
统计目前储蓄卡账户数
步骤 5:编写客户端类 Client.java 完成以下功能:
编写一个静态方法,创建一个银行对象,并随机生成 10 个账号从 1000 0000 0000 0000 到 1000 0000 0000 0009、类型不同的账户。
main 方法中模拟几次开户操作。
main 方法中模拟几次销户操作。
模拟几个对指定账号的存款和取款操作。
输出银行的总账户数、总余额、总透支数、各类具体账户数。
实现代码:
Account类:
package cn.zg;
/**
* @author zg
*/
public class Account {
/**
* 账户
*/
private String account;
/**
* 姓名
*/
private String name;
/**
* 存款余额
*/
private double money;
/**
* 构造
*/
public Account() {
this.money=0.0;
}
public Account(String account){
this.account=account;
}
public Account(String account, String name, double money) {
this.account = account;
this.name = name;
this.money = money;
}
/**
*访问器和修改器
*/
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getName() {
return name;
}
public v