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