java编程 新账户类(Newaccount)(java继承)
可记录多次存取信息
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(),"")); }}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。