bank.java
来自「非常好的java事例以及带源码事例的java2教程」· Java 代码 · 共 71 行
JAVA
71 行
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 + =
减小字号Ctrl + -
显示快捷键?