Programmazione a oggetti e JAVA Prof. B.Buttarazzi A.A. 2011/2012
Sommario Variabili statiche Ereditarietà multipla Le interfacce Binding Esercizi
Esercizio ContoCorrente Creare una classe ContoCorrente che permetta di gestire un conto corrente bancario caratterizzato dai seguenti attributi: nome dell intestatario (String); cognome dell intestatario (String); numero di conto corrente (long); saldo residuo (double). Il costruttore deve avere come parametri il nome, il cognome ed il saldo iniziale. Il numero di conto corrente deve essere calcolato automaticamente in maniera incrementale (si può realizzare usando una variabile statica). Realizzare i metodi: deposita, che permette di depositare denaro sul conto corrente; preleva, che permette di prelevare denaro dal conto corrente; print, che stampa a video le informazioni sul conto corrente (numero, intestatario, saldo residuo)
Esercizio ContoCorrente Per testare il corretto funzionamento della classe ContoCorrente, realizzare la classe TestConto ed il relativo metodo main che esegue le seguenti operazioni: Crea due conti correnti intestati a due persone diverse. Effettua un operazione di bonifico dal primo al secondo conto (utilizzano i metodi preleva e deposita). Stampa a video le informazioni dei conti prima e dopo il bonifico.
Esempio di uso di interfaccia class Rectangle extends RadiceFigure implements Figure{ Rectangle(double a, double b) { super(a, b); } protected double dim1 RadiceFigure Figure // definisce area() di Figure public double area() { return dim1 * dim2; } protected double dim2 + RadiceFigurae(double b, double h) + String tipo() + double area () } // definisce tipo() di Figure public String tipo() { } return "Rectangle "; Rettangolo + Rettangolo(double b, double h) + String tipo + double area (double a, double h)
Esempio di uso di più interfacce class Rectangle extends RadiceFigure implements A,B,C{ Rectangle(double a, double b) { super(a, b); } // definisce area() di Figure public double area() { return dim1 * dim2; } } // definisce tipo() di Figure public String tipo() { return "Rectangle "; }
Esercizio
Esercizio
//facciamo finta di aver definito le classi B,C,D... public class A { private B oggettob; private C oggettoc; private D oggettod; public void setb(b ob); public void setc(c oc); public void setd(d od); public static void main(string[] args) { B b = new B(); C c = new C(); D d = new D(); A a = new A(); a.setb(b); a.setc(c); a.setd(d); } }
//facciamo finta di aver definito le classi B,C,D... public class A { public void usob() { B b = new B(); b.metododib(); } public void usoc() { C c = new C(); c.metododic(); } public void usod() { D d = new D(); d.metododid(); } public static void main(string[] args) { A a = new A(); a.usob(); a.usoc(); a.usod(); } }
Esercizio ContoCorrente Creare una classe ContoCorrente che permetta di gestire un conto corrente bancario caratterizzato dai seguenti attributi: nome dell intestatario (String); cognome dell intestatario (String); numero di conto corrente (long); saldo residuo (double). Il costruttore deve avere come parametri il nome, il cognome ed il saldo iniziale. Il numero di conto corrente deve essere calcolato automaticamente in maniera incrementale (si può realizzare usando una variabile statica). Realizzare i metodi: deposita, che permette di depositare denaro sul conto corrente; preleva, che permette di prelevare denaro dal conto corrente; print, che stampa a video le informazioni sul conto corrente (numero, intestatario, saldo residuo)
Esercizio ContoCorrente Per testare il corretto funzionamento della classe ContoCorrente, realizzare la classe TestConto ed il relativo metodo main che esegue le seguenti operazioni: Crea due conti correnti intestati a due persone diverse. Effettua un operazione di bonifico dal primo al secondo conto (utilizzano i metodi preleva e deposita). Stampa a video le informazioni dei conti prima e dopo il bonifico.
Esercizio Un Condominio è un insieme (aggregazione) di oggetti di tipo Appartamento. Un Appartamento è caratterizzato da un interno, un Proprietario ed un numero di millesimi (in relazione alla grandezza). Un Proprietario è caratterizzato da un nome Metodi e attributi principali della classe Condominio: Attributi: appartamenti: E una array contenente le coppie (interno, appartamento) costoamillesimo: E il costo a millesimo per il condominio Metodi: putappartamento( interno: int, a: Appartamento ) inserisce un nuovo appartamento identificato da un interno. calcolacanonecondominiale(interno: int) stampa il conto del canone condominiale relativo all appartamento passato come parametro. Il conto è calcolato con la seguente espressione: millesimi X costoamillesimo
Esercizio Automobile Creare una classe Automobile secondo lo schema UML riportato
Esercizio Automobile Per testare il corretto funzionamento della classe Automobile, realizzare la classe TestAutomobile ed il relativo metodo main che esegue le seguenti operazioni: Crea due automobili. Effettua alcune operazioni di impostazione della pressione delle gomme. Stampa a video le informazioni delle automobili prima e dopo le variazioni.
Esercizio Un Albergo è un insieme (aggregazione) di oggetti di tipo Camera Metodi: putcamera( numerocamera: int, c: Camera ) inserisce una nuova camera identificata da numerocamera nell albergo. putcliente(c: Cliente, numerocamera: int) associa alla camera identificata da numerocamera un Cliente passato come parametro. calcolacontocamera(numerocamera: int) stampa il conto della camera con il n umero passato come parametro. Il conto è calcolato con la seguente espressione: giornidipermanenza X prezzogiornalierocamera Una Camera è caratterizzata da un numero camera, un Cliente ed un prezzo giornaliero Un Cliente è caratterizzato da un nome, un periodo di permanenza
Dati i seguenti class diagram realizzare un programma Java che li implementa.