ContoCorrente.java
Created with JBuilder |
class ContoCorrente {
// Attributo costante: dimensione iniziale dell'elenco operazioni
public static final int DIMENSIONE_INIZIALE_ELENCO = 1;
// Attributi
private String intestatario;
private double saldo;
private double[] elencoOperazioni;
private int numeroOperazioni;
// Costruttore
public ContoCorrente( String intestatario ) {
this.intestatario = intestatario;
saldo = 0.0;
elencoOperazioni = new double[DIMENSIONE_INIZIALE_ELENCO];
numeroOperazioni = 0;
}
// Metodo per il deposito
public void deposita( double somma ) {
saldo += somma;
aggiungiOperazione(somma);
}
// Metodo per il prelievo
public void preleva( double somma ) {
saldo -= somma;
aggiungiOperazione(-somma);
}
// Metodi per l'interrogazione
public double restituisciSaldo() {
return saldo;
}
public int restituisciNumeroOperazioni() {
return numeroOperazioni;
}
// Metodo interno per la registrazione di un'operazione
private void aggiungiOperazione( double importo ) {
if (numeroOperazioni == elencoOperazioni.length) {
espandiElencoFattore(2);
}
elencoOperazioni[numeroOperazioni] = importo;
++numeroOperazioni;
}
// Metodo interno per l'espansione dell'elenco operazioni
private void espandiElencoFattore( int fattore ) {
double[] temp = new double[numeroOperazioni * fattore];
for (int i = 0; i < numeroOperazioni; ++i) {
temp[i] = elencoOperazioni[i];
}
elencoOperazioni = temp;
}
}
ContoCorrente.java
Created with JBuilder |