![]() ![]() |
|
![]() ![]() |
Vogliamo realizzare una classe i cui oggetti sono dei semplici conti bancari.
|
![]() ![]() |
|
![]() ![]() |
Per semplicità, consideriamo che un
conto abbia nel suo stato solo un valore di tipo double, che memorizza il
saldo attuale del conto. Ci basta quindi una sola variabile
di istanza:
In un esempio più realistico, nello stato sarà memorizzato il titolare del conto, le condizioni applicate, i movimenti... Nota: la variabile è dichiarata "private", cioè accessibile e visibile solo all'interno della classe in cui è dichiarata. |
![]() ![]() |
|
![]() ![]() |
Come una qualunque variabile,
specificandone anche la visibilità.
Effetto: Ogni oggetto della classe BankAccount ha una propria variabile balance.
|
![]() ![]() |
|
![]() ![]() |
Decidiamo di considerare solo le seguenti
operazioni su di un conto bancario:
|
![]() ![]() |
|
![]() ![]() |
I metodi corrispondenti saranno (in inglese...)
Attenzione: si tratta di metodi d'istanza, non statici, come si vede dall'assenza della keyword static. |
![]() ![]() |
|
![]() ![]() |
Esattamente come visto per i metodi statici, omettendo
la parola chiave static.
Rivediamo la sintassi:
|
![]() ![]() |
|
![]() ![]() |
All'interno di una classe si possono dichiarare uno o più costruttori per specificare come dovranno essere costruiti i nuovi oggetti a seguito dell'esecuzione della primitiva new. Ad esempio, vogliamo poter scrivere:
Questo si ottiene introducendo i seguenti
costruttori:
|
![]() ![]() |
|
![]() ![]() |
Come un metodo, ma:
Ci possono essere più costruttori in una classe (come in BankAccount), purché abbiano una diversa lista di parametri (fenomeno di overloading). Il compilatore è in grado di individuare quale sia il costruttore da invocare guardando i parametri. Di solito i costruttori sono usati per inizializzare le variabili, ma in generale possono fare cose ben più complesse.
|
![]() ![]() |
|
![]() ![]() |
I costruttori e i metodi
di una classe (insieme alle eventuali variabili d'istanza pubbliche)
costituiscono l'interfaccia pubblica
della classe.
Nell'esempio specifico, l'interfaccia è l'insieme delle operazioni alle quali quasiasi parte del codice del programma può accedere per creare e manipolare oggetti di tipo BankAccount. L'interfaccia pubblica di tutte le classi della distribuzione standard di Java è documentata nella Java API (Application Programming Interface) [Medialab, Sun].
L'interfaccia pubblica della classe BankAccount è la seguente:
Conoscendo l'interfaccia possiamo usare gli oggetti della classe, anche senza sapere come siano realizzati. Esempio:
|