1、创建账户类Account,内容如下
(1) 成员变量:账户id,实名name、账户余额balance,开户日期dateCreated(Date类型)
(2) 构造方法,2个参数,为id和实名赋初值
(3) 成员变量的get和set方法
 (4) 取款方法withdraw,从账户提取指定数额,余额不足,不可以取款,提示用户
(5) 存款方法deposit,向账户存入指定数额
(6) 转账方法transfer(Account  a),向指定账户转指定数额,余额不足,不可以转账,提示用户(7) public String toString()方法:返回字符串,格式为“帐号:id\t实名:name\t账户余额:balance\t开户时间: dateCreated”
2、创建信用账户类CreditAccount,继承Account类,内容如下:
(1) 增加成员变量: 信用额度creditLimit (例如值为20000,则此卡最多可以透支20000,信用额度可用于取款/消费,不可以用于转账)
(2) 构造方法,3个参数,为id,实名,信用额度赋初值
(3) 信用额度的get和set方法
(4) 取款方法withdraw,从账户提取指定数额,超出信用额度,不可以取款,提示用户
(5) 存款方法deposit,向账户存入指定数额
(6) 转账方法transfer(Account  a),向指定账户转指定数额,只能使用余额转账,信用额度不可转帐,余额不足提示用户
(7) public String toString()方法:返回字符串,格式根据账户存款/欠款状态分为:如果账户有存款,返回:“帐号:id\t实名:name\t账户存款:***\t可用金额:***\t开户时间: dateCreated”如果账户有欠款,返回:“帐号:id\t实名:name\t账户欠款:***\t可用金额:***\t开户时间: dateCreated”
3、创建测试类AccountTest,包含main方法,测试要求如下
(1) 测试信用账户的创建、存款、取款、转账功能
(2) 测试信用账户到普通账户,普通账户到信用账户的转账功能。
(3) 注意测试余额和信用额度不足的情况。

解决方案 »

  1.   


    package com.model;import java.util.Date;/**
     * 账户类Account
     * @author Administrator
     * 2019-03-24
     */public class Account {
    private String id;

    private String name;

    private Integer balance;

    private Date dateCreated;

    // 构造方法
    public Account(String id, String name) {
    super();
    this.id = id;
    this.name = name;
    System.out.println("创建账户成功");
    } public String getId() {
    return id;
    } public void setId(String id) {
    this.id = id;
    } public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    } public Integer getBalance() {
    return balance;
    } public void setBalance(Integer balance) {
    this.balance = balance;
    } public Date getDateCreated() {
    return dateCreated;
    } public void setDateCreated(Date dateCreated) {
    this.dateCreated = dateCreated;
    } @Override
    public String toString() {
    return "Account [id=" + id + ", name=" + name + ", balance=" + balance + ", dateCreated=" + dateCreated + "]";
    }

    // 取款方法(自定义错误编码)
    public String withdraw(Integer Money) {
    if (balance>= Money) {
    // do something
    return "OK";
    } else {
    return "001";
    }
    }

    // 存款方法
    public String deposit(Integer Money) {
    // do something
    return "";
    }

    // 转账方法
    public String transfer(String id, Integer Money) {
    // do something
    return "";
    }
    }