📄 bank.java
字号:
package Bank;
//Define the bank 银行
class Bank{
//Perform a transaction 执行一个事务:借款或存款
public void doTransaction(Transaction transaction){ //同步方法,把操作帐户的方法声明为synchronized
//这样当一个职员对帐号进行操作时,会阻止另一个职员的介入。
int balance = transaction.getAccount().getBalance(); //Get current balance 获取帐号的余额
switch(transaction.getTransactionType()){ //switch()多分支语句
case Transaction.CREDIT: //Credits require a lot of checks.... 存款业务
synchronized(transaction.getAccount()){ //synchronized 对存款业务同步
try{
Thread.sleep(100);
}catch(InterruptedException e){
System.out.println(e);
}
balance = transaction.getAccount().getBalance();
balance += transaction.getAmount(); //Increment the balance
break; //使用break跳出。
}
case Transaction.DEBIT: //Debits require even more checks... 借款业务
synchronized(transaction.getAccount()){ //synchronized 对取款业务同步
try{
Thread.sleep(150);
}catch(InterruptedException e){
System.out.println(e);
}
balance = transaction.getAccount().getBalance();
balance -= transaction.getAmount(); //Decrement the balance
break;
}
default:
System.out.println("Invalid transaction");
System.exit(1);
}
transaction.getAccount().setBalance(balance); //Restore the account balance
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -