📄 creditcardmanagerimpl.java
字号:
// 信用卡管理员的对象实现
package Bank;
public class CreditCardManagerImpl extends CreditCardManagerPOA {
// 属性定义(该管理员所负责的所有信用卡)
protected java.util.Map cardList;
// 构造方法,管理员初始时管理的信用卡为空
public CreditCardManagerImpl() {
cardList = new java.util.HashMap();
}
// 开设一个信用卡账户
public synchronized CreditCard open(String num, float init) throws CardNumberDuplicated {
// 如果卡号已存在则抛出异常
if (cardList.get(num) != null) throw new CardNumberDuplicated();
// 按指定初始余额创建一个本地的信用卡对象并保存到信用卡清单中
CreditCard localCard = new CreditCardImpl(init);
cardList.put(num, localCard);
// 在服务端控制台打印提示信息并返回新开设的信用卡
System.out.println("新开信用卡:" + num);
return localCard;
}
// 撤销一个信用卡账户
public void close(String num) throws CardNumberNotFound, AccountNotBalanced {
// 如果卡号不存在则抛出异常
CreditCard localCard = (CreditCard) cardList.get(num);
if (localCard == null) throw new CardNumberNotFound();
// 如果该信用卡尚有余额则抛出异常
if (localCard.getBalance() != 0) throw new AccountNotBalanced();
// 删除该信用卡
cardList.remove(num);
System.out.println("撤销信用卡:" + num);
}
// 根据卡号访问信用卡
public CreditCard find(String num) throws CardNumberNotFound {
// 如果卡号不存在则抛出异常
CreditCard localCard = (CreditCard) cardList.get(num);
if (localCard == null) throw new CardNumberNotFound();
// 返回找到的信用卡
return localCard;
}
// 在两个信用卡之间划账
public void transfer(CreditCard src, CreditCard des, float amount) throws AccountOverdraft {
src.withdraw(amount);
des.deposit(amount);
System.out.println("成功划账:" + amount + "元");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -