一道Java题目,今晚急用,求帮助
1)定义一个银行卡的接口BankCard,成员属性根据实际情况自行确定,在类中定义两个方法save和withdraw,分别表示存款和取款。2)根据上题设计的接口,分别实现...
1)定义一个银行卡的接口BankCard,成员属性根据实际情况自行确定,在类中定义两个方法save和withdraw,分别表示存款和取款。 2)根据上题设计的接口,分别实现从银行取款1000元和存款5000元对应的抽象方法,要求输出账户余额和存(取)款的数量。 3)取款的过程中要考虑异常情况
展开
1个回答
展开全部
/**
*
* bankcard interface
*
* <p>
*
* @author cs12110 2018年10月15日
* @see
* @since 1.0
*/
public interface BankCard {
/**
* 存款
*
* @param money
* 存入
* @return boolean
*/
public boolean save(double money);
/**
* 取出
*
* @param take
* 取出
* @return double
* @throws Exception
*/
public double withdraw(double take) throws Exception;
}
/**
*
* Icbc银行卡
*
* <p>
*
* @author cs12110 2018年10月15日
* @see
* @since 1.0
*/
public class IcbcBankCard implements BankCard {
/**
* 余额,默认为0
*/
private double total = 0;
@Override
public boolean save(double money) {
if (money >= 0) {
total += money;
}
return false;
}
@Override
public double withdraw(double take) throws Exception {
if (take > total) {
throw new IllegalArgumentException("Your withdraw must <=" + this.total);
}
total -= take;
return take;
}
/**
* 打印银行卡余额
*/
public void display() {
StringBuilder info = new StringBuilder();
info.append("Remain: ").append(total);
System.out.println(info.toString());
}
}
public class BankTest {
public static void main(String[] args) {
IcbcBankCard card = new IcbcBankCard();
card.display();
// 取出1000,报错
try {
card.withdraw(1000);
} catch (Exception e) {
System.err.println(e.getMessage());
}
// 存入5000
card.save(5000);
card.display();
// 然后取出1000
try {
card.withdraw(1000);
} catch (Exception e) {
e.printStackTrace();
}
card.display();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询