用Java来实现一个简单的银行转账问题
解决方案 »
- SSH2 BaseDao与BaseService的配合使用
- 数据库字段设置默认值,插入时,参数设为空,默认值无效
- 工厂模式 的一些疑惑
- 碰钉子了!J2EE资深高手进!关于代理问题。
- java编程的朋友进来
- struts2 能直接使用 commons-fileupload吗
- java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] UPDATE 语句的语
- java.security.NosuchAlgorithmException:
- 关于pet store
- tomcat启动错误 The source specified cannot be null.
- 高手请进,关于java抓取别人的页面来
- 一段简单的js问题:我想让表单提交之后自动关闭,现在没提交就已经关闭了
String name;
double balance; public Account(String name) {
this.name = name;
}
public Account(String name, double balance) {
this.name = name;
this.balance = balance;
}
public String getName() {return name;} public double getBalnace() {return balance;} public synchronized double take(double money) { //可以根据情况决定是否抛出异常
if (balance >= money) {
balance -= money;
return money;
}
money = balance;
balance = 0;
return money;
} public synchronized void save(double money) { //可以根据情况决定是否抛出异常
if (money < 0) {
return;
}
balance += money;
}
}public class ATM {
public static void main(String[] args) {
Account a1 = new Account("a1", 5000);
Account a2 = new Account("a2", 3000); transfer(a1, a2, 3000);
transfer(a2, a1, 10000);
} public static boolean transfer(Account from, Acctount to, double money) {
if (moeny > from.getBalance()) {
System.out.printf("Account %s has no enough money to transfer.\n", from.getName());
return false;
}
to.save(from.take(money));
System.out.printf(Account %s transfers money[%.2f] to account %s.\n", from.getName(), money, to.getName());
return true;
}
}