📄 savingaccount.java
字号:
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Currency;
import java.util.ArrayList;
public class SavingAccount extends Account {
private static final long serialVersionUID = 1L;
public static double minimumBalance;
/**
* The constructor has a responsible to initial value for all essential data when the object is created.
*/
public SavingAccount(){
this.setAccountNumber(0);
this.setAccountBalance(0.00);
this.setOpeningBalance(0.00);
this.setStatus('C');
this.setAccountOwnerArrayList(null);
}
/**
* The constructor has a responsible to initial value for all essential data when the object is created.
* @param accountNumber : Account number of Account ID --> seven digit number.
* @param accountBalance : The opening balance becomes account balance.
* @param openingBalance : The first amount that customer want to deposit to account.
* @param customerArrayListObject : ArrayList of Customer class to keep the owner of this account.
*/
public SavingAccount( int accountNumber,
double accountBalance,
double openingBalance,
ArrayList<Customer> customerArrayListObject){
this.setAccountNumber(accountNumber);
this.setAccountBalance(accountBalance);
this.setOpeningBalance(accountBalance);
this.setStatus('O');
this.setAccountOwnerArrayList(customerArrayListObject);
}
public void deposit(int accountNumber,
double depositAmount,
ArrayList<Transaction> transactionArrayListObject){
if(this.getAccountNumber() == accountNumber){
double tempAccountBalance = this.getAccountBalance();
tempAccountBalance = tempAccountBalance + depositAmount;
this.setAccountBalance(tempAccountBalance);
Transaction tObject = new Transaction();
tObject.setAccountNumber(accountNumber);
tObject.setTransactionType("DEPOSIT");
tObject.setAmount(depositAmount);
tObject.setBalance(tempAccountBalance);
//Add transaction object to ArrayList of Transaction class
transactionArrayListObject.add(tObject);
this.getTransactionHistoryArrayList().add(tObject);
}else{
System.out.println("Error!!! Wrong account number");
}
}
public void withdraw(int accountNumber,
double withdrawAmount,
ArrayList<Transaction> transactionArrayListObject){
if(this.getAccountNumber() == accountNumber){
if(checkAvailableBalance(withdrawAmount)){
double tempAccountBalance = this.getAccountBalance();
tempAccountBalance = tempAccountBalance - withdrawAmount;
this.setAccountBalance(tempAccountBalance);
Transaction tObject = new Transaction();
tObject.setAccountNumber(accountNumber);
tObject.setTransactionType("WITHDRAW");
tObject.setAmount(withdrawAmount);
tObject.setBalance(tempAccountBalance);
//Add transaction object to ArrayList of Transaction class
transactionArrayListObject.add(tObject);
this.getTransactionHistoryArrayList().add(tObject);
}else{
DecimalFormat decimalPattern = new DecimalFormat("0.00");
System.out.println("ERROR WITHDRAW: Not enought funds! The balance for account "+this.getAccountNumber()+" is "+"$"+decimalPattern.format(this.getAccountBalance()));
}
}else{
System.out.println("Error!!! Wrong account number");
}
}
public void transaction(int accountNumber){
if(this.getAccountNumber() == accountNumber){
System.out.println("Account number: "+this.getAccountNumber());
System.out.print("Account owners: ");
for(Customer c: this.getAccountOwnerArrayList()){
System.out.print(c.getCustomerID());
System.out.print(" ");
}
System.out.println("");
System.out.printf("Opening balance: ");
System.out.printf("$%-20.2f",this.getOpeningBalance());
System.out.println();
for(Transaction t:this.getTransactionHistoryArrayList())
{
System.out.printf(t.getTransactionType()+" \t");
System.out.printf("\t$%-20.2f\t$%-20.2f%n",t.getAmount(),t.getBalance());
}
}else{
System.out.println("Error!!! Wrong account number");
}
}
public double getMinimumBalance() {
return minimumBalance;
}
/**
* This method validate that there is enought amount to withdraw
* @param withdrawAmount : The amount that customer want to withdraw
* @return boolean
*/
public boolean checkAvailableBalance(double withdrawAmount){//Should be represented in class diagram
double tempBalance = this.getAccountBalance();
tempBalance = tempBalance - withdrawAmount;
if(tempBalance >= this.getMinimumBalance()){
return true;
}
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -