Как добавить метод, который принимает транзакцию и добавляет его в список транзакций, который представляет собой массив, который регулирует баланс счета - PullRequest
0 голосов
/ 10 сентября 2010

Вот код, который у меня есть для класса учетной записи

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;
}

}

Ответы [ 2 ]

0 голосов
/ 10 сентября 2010

Определить транзакции как EnumSet:

EnumSet<Transcation> transactions;
0 голосов
/ 10 сентября 2010
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());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...