新手,求大神解决!实现存取款的功能
public class Account {double balance;//存款初始金额
/**
* 存款
* @param money
*/
public void save(double money){
balance += money;//累加
System.out.println("你当前的余额:" + balance);
System.out.println("存款成功");
}
/**
* 取款
* @param money
*/
public void fetch(double money){
if (balance > money) {
balance -= money;//累减
System.out.println("你当前的余额:" + balance);
System.out.println("取款成功");
}else{
System.out.println("你当前的余额不足!");
}
}
}
这是测试类,我想实现存进去的钱,能够取出来,可是实现不了,求大神解决!
public class AccountTest {
/**
* @param args
*/
public static void main(String[] args) {
Account r = new Account();
Scanner input = new Scanner(System.in);
System.out.println("1.存款 2.取款 0.退出");
System.out.println("请选择你需要办理的业务:");
int choice = input.nextInt();
switch (choice) {
case 1:
System.out.println("请输入你的存款金额:");
double amount = input.nextDouble();
r.save(amount);
break;
case 2:
System.out.println("请输入你的取款金额:");
double amount1 = input.nextDouble();
r.fetch(amount1);
break;
case 0:
System.out.println("谢谢使用!");
break;
}
}
}
----------------解决方案--------------------------------------------------------
你把遑存哪奄了?是不是被蜻了?
----------------解决方案--------------------------------------------------------
这是由于你存完钱之后,整个程序就退出了,为了不退出程序,继续操作,把你的操作放到一个while(flag){}里就OK了,要退出程序是给flage=false;
public static void main(String[] args) {
boolean flag=true;
Account r = new Account();
Scanner input = new Scanner(System.in);
while(flag){
System.out.println("1.存款 2.取款 0.退出");
System.out.println("请选择你需要办理的业务:");
int choice = input.nextInt();
switch (choice) {
case 1:
System.out.println("请输入你的存款金额:");
double amount = input.nextDouble();
r.save(amount);
break;
case 2:
System.out.println("请输入你的取款金额:");
double amount1 = input.nextDouble();
r.fetch(amount1);
break;
case 0:
System.out.println("谢谢使用!");
flag=false;
break;
}
}
}
----------------解决方案--------------------------------------------------------
先提供个思路,这类需求一般都是用多线程写的,你这样不行,
要实现存取,拿到现实生活中就有很多问题
用多线程,在存取上加同步锁。出异常立刻回滚。慢慢理理思路,在写,那样好很多
----------------解决方案--------------------------------------------------------