简体   繁体   中英

How do I use the transferTo() method to transfer money between accounts?

I am supposed to Add the following method to allow BankAccounts to transfer money to another BankAccount. Where would I add this method to make sure it works for all BankAccounts, including SavingsAccount and CheckingAccount?

The method im supposed to use is transferTo(BankAccount destinationAccount, int transferAmount)

public class BankAccount {


private String accountHolderName;
private String accountNumber;
private int balance;

public BankAccount(String accountHolder, String accountNumber) {
    this.accountHolderName = accountHolder;
    this.accountNumber = accountNumber;
    this.balance = 0;
}

public BankAccount(String accountHolder, String accountNumber, int balance) {
    this.accountHolderName = accountHolder;
    this.accountNumber = accountNumber;
    this.balance = balance;
}

public String getAccountHolderName() {
    return accountHolderName;
}

public String getAccountNumber() {
    return accountNumber;
}

public int getBalance() {
    return balance;
}

// Update the balance by using the DollarAmount.Plus method
public int deposit(int amountToDeposit) {
    balance = balance + amountToDeposit;
    return balance;
}

// Update the balance by using the DollarAmount.Minus method
public int withdraw(int amountToWithdraw) {
    balance = balance - amountToWithdraw;
    return balance;
}

public int transferTo(BankAccount destinationAccount, int transferAmount) {

    return balance;

}

}

Assumptions:

  1. This is only an exercise and not a real application for a bank.
  2. SavingsAccount and CheckingAccount are subclasses of BankAccount

The method transferTo can be implemented like the following:

public int transferTo(BankAccount destinationAccount, int transferAmount) {
    this.balance -= transferAmount;
    destinationAccount.deposit(transferAmount);
    return balance;
}

In a real world application you need to ensure that this operation will be always atomic and thread-safe. Additionally, using int for the balance is strongly not recommended.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM