ESERCIZIO 1 (STRINGHE) Fornire N stringhe di caratteri in input al programma. Per ogni stringa: si stampi a video la stringa si sostituiscano tutte le occorrenze di un carattere ( old_char ) con un altro carattere ( new_char ) (definiti nel programma) si stampi nuovamente la stringa per verificare l'avvenuta sostituzione. Risolvere l esercizio utilizzando sia la classe String sia la classe StringBuffer con i loro metodi. Risolvere l esercizio utilizzando sia il prompt dei comandi che Eclipse per il passaggio degli argomenti. Link alle API Java (per i metodi delle 2 classi): http://docs.oracle.com/javase/8/docs/api/ Passaggio degli argomenti in Eclipse Right-click on the project name Run As Run Configurations Select the application and insert the list of arguments separated by space Apply Run 1
ESERCIZIO 2 (ARRAY/EREDITARIETA ) Si realizzi una classe Interi che rappresenta la tipologia dei numeri interi con attributo valore (int), un metodo costruttore a un argomento (per inizializzare valore) e un metodo void stampa() che stampa il campo valore. Si realizzi poi una classe InteriPari che rappresenta la tipologia degli interi pari, derivata dalla precedente. Il costruttore deve verificare che il valore passato sia pari; se non lo è assegna 0 al campo valore. ESERCIZIO 2 (cont.) Si realizzi poi una funzione main in una classe Prova che: crea un vettore V di tipo Interi di dimensione n, con n passato come parametro, destinato a contenere i primi n interi; utilizzare la classe wrapper Integer per convertire il parametro in intero per ciascun valore da 0 a n-1 inserisce in V un oggetto della classe Interi o InteriPari a seconda della caratteristica del numero; infine, accedendo al vettore V, ne stampa i valori invocando stampa(). 2
ESERCIZIO 3 (EREDITARIETA ) (es. Azienda cont.) Modificare il programma ottenuto alla fine dell esercizio su Oggetti composti (classe Azienda): inserendo una classe ContatoreDec che estende la classe Contatore e aggiunge il metodo void decrementa() che decrementa l'attributo conteggio di un'unità. modificando il metodo lavoro di Giornata in modo che usi questa nuova classe al posto di Contatore, e nel ciclo while, quando il contatore raggiunge un multiplo di 100, faccia uno scatto indietro (attenzione ai cicli infiniti). NOTA: va ancora bene lo scope private per l'attributo conteggio? ESERCIZIO 4 (EREDITARIETA ) Si crei la seguente classe Veicolo private double velocita; private double accelerazione; // Costruttori public Veicolo() {... } //inizializza a 0 gli attributi public Veicolo(double velocita, double accelerazione){...} // GETTERS public double getvelocita() {... } public double getaccelerazione() {... } // SETTERS public void setvelocita(double velocita) {... } public void setaccelerazione(double accelerazione) {... } // stampa la velocità di un oggetto di classe VEICOLO static public void printvelocita(veicolo v){... } 3
Si crei la seguente classe Automobile che estende la classe Veicolo private String targa; private boolean avviata; public Automobile(String targa){... } //settano opportunamente l attributo avviata public void avvia() {... } public void spegni() {... } //accelera controlla se la macchina è avviata, nel qual caso setta i nuovi valori di accelerazione e velocità (vel. precedente + acc*sec), altrimenti manda un messaggio d errore public void accelera(double accelerazione, int secondi) {... } Si crei la seguente classe Bicicletta che estende la classe Veicolo public Bicicletta(){... } // pedala setta i nuovi valori di: // - accelerazione (num. Pedalate / sec ^2) // - velocità (vel. precedente + acc*sec) public void pedala(int numeropedalate, int secondi) {...} 4
Creare una classe VeicoloMain contenente il metodo main. Nel metodo main definire un oggetto a istanza di Automobile e un oggetto b istanza di Bicicletta. Richiamare i metodi pedala e accelera rispettivamente per b e a con valori a scelta. Stampare la velocità dei due veicoli usando il metodo printvelocita(veicolo v) contenuto nella classe Veicolo. 5