我希望余额具有固定的500英镑透支额,只有在isHasOverdraft = true时才能激活

时间:2019-05-06 17:23:29

标签: java if-statement banking

我有一个银行帐户类,其中包含您所有常用的属性和方法,例如存款,取款等。余额属性应按预期的方式工作“为特定货币的金额持有价值”,但我想包括可以选择透支500英镑。用户不能提取超过此金额的款项。当我编写了if语句时,将不使用任何参数,因此我无法固定透支500英镑。我知道这一点,因为我使用了withdraw方法来提取超出应允许的数量。

这是我的代码;

package javaCode.AdvancedBankAccount;

public class StudentAccount {
    private String accountNumber;
    private String accountHolder;
    private double balance;
private boolean hasOverdraft;
private final int OVERDRAFTLIMIT = -500;

public StudentAccount (String accountNumber, String accountHolder, boolean hasOverdraft) {
    this.accountNumber = accountNumber;
    this.accountHolder = accountHolder;
    this.balance = 0.0;
    this.hasOverdraft = hasOverdraft;
}

public String getAccountNumber () {
    return accountNumber;
}

public void setAccountNumber (String accountNumber) {
    this.accountNumber = accountNumber;
}

public String getAccountHolder () {
    return accountHolder;
}

public void setAccountHolder (String accountHolder) {
    this.accountHolder = accountHolder;
}

public double getBalance () {
    return balance;
}

public void setBalance (double balance) {
    this.balance = balance;
}

public boolean isHasOverdraft () {
    return hasOverdraft;
}

public void setHasOverdraft (boolean hasOverdraft) {
    this.hasOverdraft = hasOverdraft;
}


public boolean deposit (double amount) {
    if (amount>0){
        this.balance+=amount;
        return true;
    }
    else {
        return false;
    }
}

public boolean withdraw (double amount, double balance, double overdraftLimit) {
    overdraftLimit = OVERDRAFTLIMIT;
    if (amount > 0 && balance + overdraftLimit - amount > overdraftLimit) {
        this.balance -= amount;
        return true;
    } else {
        return false;
    }
}
@Override
public String toString() {
    return "Account Number: " + accountNumber +
            "  |  Account Holder: " + accountHolder +
            "  |  Balance: " + balance +
            "  |  Account has overdraft?: " + hasOverdraft;
}

public static void main(String[] args) {
    CurrentAccount jake = new CurrentAccount("10801", "Jake Mellor", true);
    jake.withdraw(300);
    System.out.println(jake);
    jake.deposit(-300);
    System.out.println(jake);
    jake.withdraw(1000);
    System.out.println(jake);
}

}

这些是结果;

Account Number: 10801  |  Account Holder: Jake Mellor  |  Balance: -300.0  |      Account has overdraft?: true
Account Number: 10801  |  Account Holder: Jake Mellor  |  Balance: -300.0  |        Account has overdraft?: true
Account Number: 10801  |  Account Holder: Jake Mellor  |  Balance: -1300.0  |  Account has overdraft?: true

以退出代码0结束的过程

0 个答案:

没有答案