2010-09-10 23 views
0

這裏的平衡陣列的代碼,我至今對Account類你如何添加接受交易,並將其添加到交易的列表是調整一個帳戶

public class Account { 
    Transcation transcation[]; 
    private int account; 



public Account(){ 
    transcation = new Transcation[5]; 


} 
private void setAccount(int account){ 
    this.account = account; 

} 
public int getAccount(){ 
    return account; 
} 

public performTranscation(){ 
    return transcation; 
} 
的方法

}

+1

應該是交易,而不是Transcation。你只能在一個賬戶上進行5筆交易嗎? – dogbane 2010-09-10 07:40:22

回答

0
public class Account { 
    private Transaction[] transactions = new Transaction[0]; 
    private BigDecimal balance = BigDecimal.ZERO; 

    public performTransaction(Transaction transaction) { 
     transactions = transactions.copyOf(transactions, transactions.length + 1; 
     transactions[transactions.length - 1] = transaction; 
     balance = balance.plus(transaction.getDelta()); 
    } 
} 

public class Transaction { 
    private final BigDecimal delta; 

    public Transaction(BigDecimal delta) { 
     this.delta = delta; 
    } 

    public BigDecimal getDelta() { 
     return delta; 
    } 
} 

但是你應該使用ArrayList不是一個數組;它會更有效率,因爲您不需要每次都複製數組。

public class Account { 
    private final List<Transaction> transactions = new ArrayList<Transaction>(); 
    private BigDecimal balance = BigDecimal.ZERO; 

    public performTransaction(Transaction transaction) { 
     transactions.add(transaction); 
     balance = balance.plus(transaction.getDelta()); 
    } 
} 
0

定義爲交易EnumSet:

EnumSet<Transcation> transactions;