java編程 新賬戶類(Newaccount)(java繼承)
阿新 • • 發佈:2019-05-10
date pos lin created ann str test char 聲明 可記錄多次存取信息
import java.util.ArrayList; import java.util.Date; import java.util.Scanner;//聲明 public class TestNewaccount //測試類 { public static void main(String[] args) { NewAccount account = new NewAccount("Mike",1122,1000); account.setAnnualInterestRate(1.5/100); account.deposit(30); account.deposit(40); account.deposit(50); account.withDraw(5); account.withDraw(4); account.withDraw(2); for(int i=0;i<account.transaction.size();i++) { System.out.println(account.transaction.get(i)); } } } class Account { private int id=0; private double balance=0; static private double annualInterestRate=0; private Date dateCreated; public Account() { dateCreated=new Date(); } public Account(int x,double y) { id=x; balance=y; dateCreated=new Date(); } public void setId(int x) { id=x; } public int getId() { return id; } public void setBalance(double x) { balance=x; } public double getBalance() { return balance; } public void setAnnualInterestRate(double x) { annualInterestRate=x; } public double getAnnualInterestRate() { return annualInterestRate; } public Date getDateCreated() { return dateCreated; } public double getMonthlyInterestRate() { return annualInterestRate/12; } public double getMonthlyInterest() { return getMonthlyInterestRate()*balance; } public void withDraw(double money) { if(balance>=money) balance-=money; } public void deposit(double money) { balance+=money; } } class Transaction//用戶交易信息類 { private char type; private Date date; private double money; private double balance; private String description; public Transaction(char type,double money,double balance,String description) { this.type=type;//交易類型(取款,存款) date=new Date();//時間 this.money=money;//存取的多少 this.balance=balance;//交易完還剩多少錢 this.description=description;//交易備註 } public String toString() { return "Type:"+type+" Money:"+money+" Balance:"+balance+" Date:"+date+" "+description; } } class NewAccount extends Account//子類 { private String name;//新增變量 ArrayList transaction=new ArrayList();//ArrayList方法 public NewAccount(String name,int id,double balance) { super(id,balance); this.name=name; } public void withDraw(double x)//取錢 { if(getBalance()>x) { setBalance(getBalance()-x); transaction.add(new Transaction(‘W‘,x,getBalance(),""));//往ArrayList方法中加元素 } } public void deposit(double x)//存錢 { setBalance(getBalance()+x); transaction.add(new Transaction(‘D‘,x,getBalance(),"")); } }
java編程 新賬戶類(Newaccount)(java繼承)