⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 creditcardmanagerimpl.java

📁 利用CORBA的值类型实现的一个分布式程序
💻 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 + -