ContoBancario
Progettare e realizzare una classe che modella un conto bancario.
Le funzioni che vogliamo considerare sono molto semplici:
Questo implica che abbiamo individuato i metodi della nostra classe che ne regolano il comportamento:contoCarlo.deposita (300); contoAndrea.preleva (50); System.out.println (contoAndrea.saldo());
javadoc
devono essere scritti in modo molto semplice e sintetico, come segue ad esempio:
Lo stato di ciascun conto bancario può essere descritto da una variabile d'istanza/** Preleva denaro dal conto bancario. @param ammontare l'importo da prelevare */ public void preleva (double ammontare) { // corpo del metodo in seguito } /** Chiede il saldo attuale del conto bancario. @return il saldo attuale */ public double saldo () { // corpo del metodo in seguito } saldo
che definiremo con accesso private in modo che solo i costruttori e i metodi della
classe possano accedervi.
Il costruttore di un oggetto della classe potrà inizializzare a 0 la variabile
d'istanza saldo , come segue:
È anche ragionevole poter disporre di un costruttore con un parametro che indichi la cifra iniziale con cui inizializzare il saldo, e quindi possiamo anche definire un secondo costruttore:ContoBancario () { saldo = 0; } Il fatto che sia possibile chiamare i due costruttori con lo stesso identificatore si chiama overloading o sovraccaricamento. Il compilatore saprà scegliere il costruttore opportuno osservando i parametri passati al costruttore al momento della sua chiamata.ContoBancario (double saldoIniziale) { saldo = saldoIniziale; } Ora occorre definire il corpo dei metodi di cui abbiamo identificato i prototipi. Innanzitutto in ogni nuova classe in generale definiremo:ContoBancario contoAndrea, contoCarlo; contoAndrea = new ContoBancario (); contoCarlo = new ContoBancario (500); e quindi la nostra classepublic class NomeClasse { campi costruttori metodi } ContoBancario sarà
Definiamo ora i metodipublic class ContoBancario { private double saldo; public ContoBancario () { saldo = 0; } public ContoBancario (double saldoIniziale) { saldo = saldoIniziale; } metodi } deposita , preleva , saldo .
Il campo saldo è stato dichiarato private e solo
i metodi deposita e preleva potranno modificarne il valore,
mentre il metodo saldo potrà leggerne il valore attuale.
La variabile/** Deposita denaro sul conto bancario @param ammontare l'importo da versare */ public void deposita (double ammontare) { double nuovoSaldo = saldo + ammontare; saldo = nuovoSaldo; } /** Preleva denaro dal conto bancario @param ammontare l'importo da prelevare */ public void preleva (double ammontare) { double nuovoSaldo = saldo - ammontare; saldo = nuovoSaldo; } /** Chiede il saldo attuale del conto bancario. @return il saldo attuale */ public double saldo () { return saldo; } nuovoSaldo è definita all'interno del corpo del metodo
preleva , si dice allora che è una
variabile locale. Le variabili locali
si differenziano da quelle d'istanza per il ciclo di vita: infatti sono in vita solo durante
l'esecuzione del metodo che le definisce. Anche il
parametro di un metodo è una variabile
che ha vita solo durante l'esecuzione del metodo.
La differenza tra questi ultimi due tipi di variabili, variabili locali e parametri, sta
nella diversa modalità d'inizializzazione. I parametri non vengono inizializzati esplicitamente
perchè assumono il valore che viene loro passato all'atto della chiamata del
metodo, le variabili locali devono invece essere inizializzate esplicitamente. La mancanza
d'inizializzazione causa un errore.
Per effettuare una prova della classe |
![]() |
La classe ContoBancario Copyright © 2005. Alberti. DICo, Università degli Studi di Milano. |
![]() |