Java 支票账户-透支提款问题

Java 支票账户-透支提款问题,java,object,Java,Object,我在Java OOP练习中遇到了问题。程序使用两个类,对象类Account和主类来打印用户想要的任何内容 这是一个有透支限额的标准支票账户,我的问题是打印账户余额如果用户决定提取超过账户余额的金额,我似乎无法理解透支逻辑,有人能帮我吗 帐户类别 这是输出: 这将是提款期间处理透支的正确逻辑 public boolean withdraw(double amount) { if(balance < -overDraftLimit) { return false;

我在Java OOP练习中遇到了问题。程序使用两个类,对象类Account和主类来打印用户想要的任何内容

这是一个有透支限额的标准支票账户,我的问题是打印账户余额如果用户决定提取超过账户余额的金额,我似乎无法理解透支逻辑,有人能帮我吗

帐户类别 这是输出:


这将是提款期间处理透支的正确逻辑

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