Java 支票账户-透支提款问题
我在Java OOP练习中遇到了问题。程序使用两个类,对象类Account和主类来打印用户想要的任何内容 这是一个有透支限额的标准支票账户,我的问题是打印账户余额如果用户决定提取超过账户余额的金额,我似乎无法理解透支逻辑,有人能帮我吗 帐户类别 这是输出:Java 支票账户-透支提款问题,java,object,Java,Object,我在Java OOP练习中遇到了问题。程序使用两个类,对象类Account和主类来打印用户想要的任何内容 这是一个有透支限额的标准支票账户,我的问题是打印账户余额如果用户决定提取超过账户余额的金额,我似乎无法理解透支逻辑,有人能帮我吗 帐户类别 这是输出: 这将是提款期间处理透支的正确逻辑 public boolean withdraw(double amount) { if(balance < -overDraftLimit) { return false;
这将是提款期间处理透支的正确逻辑
public boolean withdraw(double amount) {
if(balance < -overDraftLimit) {
return false;
}
if ((balance - amount) >= -overDraftLimit) {
this.setBalance(this.getBalance() - amount);
balance -= amount;
return true;
}
return false;
} // ***** WITHDRAW *****
欢迎来到堆栈溢出!我建议您看看如何为您的问题生成一个解决方案,并确保您包括您预期会发生什么、发生什么错误、导致它出错的原因等详细信息。这样做就可以了!谢谢你让我知道
### Main class
Account ac1 = new Account();
ac1.setAccountNumber(1234);
ac1.setOverDraftLimit(50);
System.out.println(ac1);
System.out.println("\nSucessful deposit");
ac1.deposit(100);
System.out.println("Your current balance is: $" + ac1.getBalance());
makeWithdraw(ac1, 50);
makeWithdraw(ac1, 50);
makeWithdraw(ac1, 25);
}
public static void makeWithdraw (Account ac1, double amount) {
if (ac1.withdraw(amount)) {
System.out.println("Withdraw was sucessful! Your new balance is: $" + ac1.getBalance());
} else {
System.out.println("Insufficient funds! Cannot withdraw " + amount + "Your current balance is: $" + ac1.getBalance());
}
}
}
public boolean withdraw(double amount) {
if(balance < -overDraftLimit) {
return false;
}
if ((balance - amount) >= -overDraftLimit) {
this.setBalance(this.getBalance() - amount);
balance -= amount;
return true;
}
return false;
} // ***** WITHDRAW *****
public class Test{
public static class A {
private int balance = 20;
private int overDraftLimit = 50;
public boolean withdraw(double amount) {
if(balance < -overDraftLimit) {
return false;
}
if ((balance - amount) >= -overDraftLimit) {
balance -= amount;
return true;
}
return false;
}
public int getBalance() {
return balance;
}
}
public static void main(String []args){
A a = new A();
System.out.println(a.getBalance());
System.out.println(a.withdraw(30));
System.out.println(a.getBalance());
System.out.println(a.withdraw(40));
System.out.println(a.getBalance());
System.out.println(a.withdraw(1));
System.out.println(a.getBalance());
}
}
20
true
-10
true
-50
false
-50