Esercitazione di TPA del 4 aprile 2007-04-04
La ACME produce mezzi di trasporto di tutti i tipi, dalle biciclette alle automobili. Per migliorare la qualità dei propri
prodotti ha chiesto all’Università di Salerno di realizzare un simulatore universale che permetta di simulare qualsiasi veicolo.
Primo Esercizio: Classi
Il nostro primo compito è quello di realizzare il modello ad oggetti del simulatore, facendo in modo che qualsiasi categoria di veicolo sia utilizzabile nel simulatore senza che esso venga modificato ogni qualvolta viene introdotto un nuovo veicolo.
Implementiamo in Java un modello a oggetti considerando che ogni veicolo ha i
seguenti attributi in comune: Marca, Modello, NumRuote, Velocità, TipoCambio (Manuale o Automatico), Marcia, e che tutti i tipi di veicoli condividono le seguenti operazioni: cambiaMarcia( marcia: Intero ); frena(decelerazione: Intero);
accelera (accelerazione: Intero).
Inoltre forniamo anche l’implementazione delle classi Auto, Bici e Moto, introducendo in tali classi quegli attributi e quei metodi che sono specifici di tali veicoli.
Secondo Esercizio: Introspezione
Realizziamo una applicazione “Manager dei Veicoli”, che richiede in input il nome della classe di un veicolo e ne
stampa le caratteristiche. Tale applicazione deve essere universale e quindi funzionare con qualsiasi tipo di veicolo,
anche veicoli per i quali non esiste una classe nel momento della realizzazione del programma.
Il programma dovrebbe somigliare il più possibile a quello riportato sotto:
All’avvio visualizza l’intestazione “Manager Veicoli – Versione 1.0”;
Richiedere all’utente il tipo del veicolo;
Caricare dinamicamente la classe corrispondente al tipo specificato, e visualizzarne i metodi e gli attributi, o mostrare un messaggio di errore nel caso in cui tale classe non fosse disponibile.
Manager Veicoli – Versione 1.0
digitare il tipo di veicolo: Auto
***
Attributi: Marca, Modello, NumRuote, Velocità, TipoCambio;
Metodi: cambiaMarcia, frena, accelera;
***
Digitare il tipo di veicolo: Aereo
^^^ Errore: il file Aereo.class non è stato trovato
Digitare il tipo di veicolo:
Terzo Esercizio: Ancora Introspezione
Realizziamo una applicazione “Loader Veicoli” che istanzia tutti i veicoli elencati nel file di testo. Il file ha N righe,ogni riga ha il seguente formato: NomeClasse, NomeAttributo:Valore, NomeAttributo: Valore
Se la classe non e presente, non viene istanziato niente. Alla fine del caricamento vengono elencati il tipo di oggetti caricati e il numero di oggetti caricati.
Loader Veicoli – Versione 1.0
*** istanziate le seguenti classi:
Auto, Moto, Triciclo, Aereo per un totale di 4 istanze.
Figura 3 – Loader Veicoli