📄 bank.java
字号:
class Bank
{
// Perform a transaction
public void doTransaction(Transaction transaction)
{
switch(transaction.getTransactionType())
{
case Transaction.CREDIT:
synchronized(transaction.getAccount())
{
System.out.println("Start credit of " +
transaction.getAccount() + " amount: " +
transaction.getAmount());
// Get current balance
int balance = transaction.getAccount().getBalance();
// Credits require require a lot of checks...
try
{
Thread.sleep(100);
}
catch(InterruptedException e)
{
System.out.println(e);
}
balance += transaction.getAmount(); // Increment the balance...
transaction.getAccount().setBalance(balance); // Restore account balance
System.out.println(" End credit of " +
transaction.getAccount() + " amount: " +
transaction.getAmount());
break;
}
case Transaction.DEBIT:
synchronized(transaction.getAccount())
{
System.out.println("Start debit of " +
transaction.getAccount() + " amount: " +
transaction.getAmount());
// Get current balance
int balance = transaction.getAccount().getBalance();
// Debits require even more checks...
try
{
Thread.sleep(150);
}
catch(InterruptedException e)
{
System.out.println(e);
}
balance -= transaction.getAmount(); // Increment the balance...
transaction.getAccount().setBalance(balance); // Restore account balance
System.out.println(" End debit of " +
transaction.getAccount() + " amount: " +
transaction.getAmount());
break;
}
default: // We should never get here
System.out.println("Invalid transaction");
System.exit(1);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -