/**
* Rappresenta un conto corrente in una banca con spese
*
* @author Antonio Terreno
* @created 14 maggio 2002
*/
public class ContoCorrenteConSpese extends ContoCorrente {
/**
* Numero delle operazioni gratuite
*/
public final static int NUMOPERAZIONIGRATIS = 2;
/**
* Costo di ogni operazione
*/
public final static int COSTOOPERAZIONE = 1;
private int numOperazioni;
/**
*Costruttore dell'oggetto ContoCorrenteConSpese
*
* @param nome Nome del correntista
* @param saldoiniziale Saldo iniziale
*/
public ContoCorrenteConSpese(String nome, int saldoiniziale) {
super(nome, saldoiniziale);
numOperazioni = 0;
}
/**
*Costruttore dell'oggetto ContoCorrenteConSpese
*
* @param nome Nome del correntista
*/
public ContoCorrenteConSpese(String nome) {
super(nome);
numOperazioni = 0;
}
/**
* Preleva considerando il numero di operazioni
*
* @param valore Somma da prelevare
* @exception MovimentoErrato Eccezione di tipo MovimentoErrato
*/
public void preleva(int valore) throws MovimentoErrato{
super.preleva(valore);
numOperazioni += 1;
}
/**
* Deposita considerando il numero di operazioni
*
* @param valore Somma da depositare
* @exception MovimentoErrato Eccezione di tipo MovimentoErrato
*/
public void deposita(int valore) throws MovimentoErrato {
super.deposita(valore);
numOperazioni += 1;
}
/**
* Calcolo delle competenze
*
* @return Interessi maturati meno spese
*/
public int calcoloCompetenze() {
if (numOperazioni <= NUMOPERAZIONIGRATIS) {
return super.calcoloCompetenze();
} else {
return super.calcoloCompetenze() - COSTOOPERAZIONE * numOperazioni;
}
}
}