接口练习作业-模拟银行存取款

题目

模拟银行存取款
1、  创建基接口BankAccount,包含 
    存款方法playIn(),
    取款方法withdraw(),
    查询余额方法getBalance()。
2、  创建接口ITransferBankAccount(继承基接口BankAccount)
    包含转账方法transferTo().
    类CurrentAccount实现ITransferBankAccount接口且其中包含
    私有数据成员:名字name和余额balance,
    取款方法:withdraw(),
    查询余额getBanlance(),
    重载方法toString()方法,该方法返回银行当前账户中的余额。
4、  主函数中:拥有两个账户:分别为曹操和刘备,
(1):曹操存款1000,刘备存款2000。
(2):刘备向曹操转账1元钱,返回两个账户当前的余额。

代码

/**
 * 练习
 * @author 焦焱
 * 2018年5月24日20:57:10
 */
public class Practice {
public static void main(String[] args) {
    CurrentAccount caocao = new CurrentAccount("曹操");
    CurrentAccount liubei = new CurrentAccount("刘备");
    caocao.playIn(1000);
    liubei.playIn(2000);
    System.out.println(caocao);
    System.out.println(liubei);
    liubei.transferTo(caocao, 1);
    System.out.println("转账后");
    System.out.println(caocao);
    System.out.println(liubei);

}
}
/**
 * BankAccount接口
 * @author 14831
 *
 */
interface BankAccount{
    /**
     * 存钱
     * @param money 钱
     * @return      是否成功
     */
    boolean playIn(double money);
    /**
     * 取钱
     * @param money 钱
     * @return      是否成功
     */
    boolean withdraw(double money);
    /**
     * 获得当前余额
     * @return
     */
    double getBalance();
}
/**
 * ITransferBankAccount接口
 * @author 14831
 *
 */
interface ITransferBankAccount extends BankAccount{
    /**
     * 转账
     * @param name  目标账户
     * @param money 钱
     * @return
     */
    boolean transferTo(CurrentAccount name,double money);
}
/**
 * 账户类,实现ITransferBankAccount接口
 * @author 14831
 *
 */
class CurrentAccount implements ITransferBankAccount{
    /**
     * 姓名
     */
    private String name;
    /**
     * 余额
     */
    private double balance=0;
    /**
     * 构造方法 初始化
     * @param name
     */
    public CurrentAccount(String name) {
        this.name = name;
        this.balance = 0;
    }

    @Override
    public boolean playIn(double money) {
        balance+=money;
        return true;
    }
    @Override
    public boolean withdraw(double money) {
        if(money>balance)
        {
            System.err.println("你的余额不足");
            return false;
        }
        balance-=money;
        return true;
    }
    @Override
    public double getBalance() {
        return balance;
    }
    @Override
    public boolean transferTo(CurrentAccount name,double money) {
        if(withdraw(money))
        {
            name.playIn(money);
            return true;
        }
        return false;
    }
    @Override
    public String toString() {
        return "["+name+" 当前余额为:" +balance+"]";
    }
}

测试
[曹操 当前余额为:1000.0]
[刘备 当前余额为:2000.0]
转账后
[曹操 当前余额为:1001.0]
[刘备 当前余额为:1999.0]

猜你喜欢

转载自blog.csdn.net/qq_38345606/article/details/80443743
今日推荐