Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 6 ARGOMENTI: LAVORARE CON CLASSI METODI DELLISTANZA, COSTRUTTORI
Esercizio 1 Progettare ed implementare una classe Negozio, dotata delle seguenti proprietà: ragione sociale (stringa), nome del proprietario (stringa), ora di apertura (intero) e ora di chiusura (intero). La classe Negozio è dotata di: metodi get... () per accedere a tutti gli attributi, che ne ritornano il valore del campo relativo; metodi set... () per impostare i vari campi di un oggetto Negozio con valori passati come argomenti; un metodo stampaOrario, che visualizza l'orario del negozio. Ad esempio: Il negozio è aperto dalle 9:00 alle 21:00 Definire una classe ProvaNegozio1 che implementi un metodo main, che: 1.crea un oggetto Negozio, 2.chiede all'utente i dati mediante il metodo, JOptionPane.showInputDialog(...) con cui invochi i metodi della classe definita al punto precedente per inizializzare i campi dell'oggetto, 3.stampa i valori dei campi dell'oggetto, 4.stampa l'orario del negozio.
Esercizio 2 Modificare la classe Negozio dell'esercizio precedente aggiungendo: due costruttori. Un costruttore inizializza tutte le proprietà con dati forniti dagli argomenti del costruttore e laltro inizializza solo il nome del negozio e il nome del proprietario, inizializzando in modo predefinito (ore 10 e 18) lorario di apertura; un metodo toString() che restituisce una stringa organizzata cosi: Ragione sociale: "Pippo Abbigliamento Proprietario: Giulio Rossi Orario del negozio: 9:00 – 21:00. Definire una classe ProvaNegozio2 che implementi un metodo main, che: 1.chiede mediante il metodo, JOptionPane.showInputDialog(...) all'utente dei dati necessari alla creazione di due oggetti, 2.crea due oggetti Negozio: uno con il primo costruttore e il secondo con il secondo costruttore, 3.stampa il contenuto dei due oggetti chiamandoli con il metodo toString(), 4.imposta l'orario del secondo negozio, 5.stampa il contenuto dei due oggetti chiamandoli con il metodo toString().
Riassunto degli esercizi precedenti Finora avete progettato ed implementato una classe Negozio, dotata delle seguenti proprietà: ragione sociale (stringa), nome del proprietario (stringa), ora di apertura (intero) e ora di chiusura (intero). La classe Negozio è ormai dotata di: metodi getXxx() per accedere ad un attributo Xxx e ne riornano il valore; metodi setXxx() per impostare i vari campi di un oggetto Negozio con valori passati come argomenti; un metodo stampaOrario, che visualizza l'orario del negozio. Ad esempio: Il negozio è aperto dalle 9:00 alle 21:00
Esercizio 3 Modificare la classe Negozio aggiungendo: due costruttori. Un costruttore inizializza tutte le proprietà con dati forniti dagli argomenti del costruttore e l.altro inizializza solo il nome del negozio e il nome del proprietario, impostando come predefinito lorario di apertura: 10 e 18; un metodo toString() che restituisca una stringa organizzata cosi: Ragione sociale: "Giulio Abbigliamento Proprietario: Giulio Rossi Orario del negozio: 9:00. 21:00. Definire una classe ProvaNegozio2 che implementi un metodo main, che: 1. chieda mediante il metodo JOptionPane.showInputDialog(...) all'utente i dati necessari alla creazione di due oggetti, 2. crei i due oggetti Negozio: uno con il primo costruttore e il secondo con il secondo costruttore, 3. visualizzi il contenuto dei due oggetti chiamandoli con il metodo toString(), 4. imposti l'orario del secondo negozio, 5. visualizzi il contenuto dei due oggetti chiamandoli con il metodo toString().
La classe Calendar 1. Java propone una classe Calendar nel pacchetto java.util che rappresenta un istante (misurato in millessimi di secondo dall'inizio dello scorso secolo). 2. Un oggetto Calendar che rappresenta l'istante corrente (quello in cui si esegue il programma) si ottiene con il metodo statico getInstance() (con cui viene chiamata la classe Calendar): Calendar c = Calendar.getInstance(); 3. Un oggetto Calendar ha un metodo che converte l'istante in uno dei campi che compongono la data e l'ora dell'istante, cioè: YEAR, MONTH, DAY_OF_MONTH, HOUR etc. Il metodo get() riceve un parametro costante che indica il campo d'interesse. Esempi: int hour = c.get(Calendar.HOUR_OF_DAY); int min = c.get(Calendar.MINUTE); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH); int day = c.get(Calendar.DAY_OF_MONTH); Utilizzeremo la classe Calendar nell'implementazione del metodo eAperto() dell'esercizio successivo.
Esercizio 4 1. Aggiungere un metodo-predicato eAperto() che restituisca un valore boolean appropriato se il negozio è aperto o chiuso. 2. Aggiungere un metodo getMessaggio() che restituisca una stringa che indichi se il negozio è aperto ( Siamo aperti! ) o chiuso ( Siamo chiusi !) al momento della richiesta. Utilizziamo la funzionalità getMessaggio() per la definizione di una nuova classe ProvaNegozio3 che implementi un metodo main che: 1. chieda all'utente con JOptionPane.showInputDialog(...) dei dati necessari alla creazione di due oggetti, 2. crei un oggetto Negozio, 3. visualizzi il contenuto del oggetto chiamandolo con toString(), 4. visualizzi se il negozio è aperto o chiuso al momento della richiesta. Esempio: Ragione sociale: "Pippo Abbigliamento. Proprietario: Giulio Rossi Orario del negozio: 9:00. 21:00. Siamo aperti!
Esercizio 5 Fra tempo abbiamo scoperto che il negozio precedente è una libreria con centinaia di libri (che però non supera 200 titoli). Vogliamo aggiungere agli oggetti della classe la possibilità di stampare i titoli dei libri in magazzino. Seguite i seguenti passi: 1. Aggiungete alla classe Negozio una variabile array di stringhe titoli che memorizzi un oggetto-array contenente i titoli dei libri. 2. Aggiungete un costruttore che, tra gli altri parametri, riceva anche un array di stringhe con cui inizializzare titoli. 3. Aggiungete il metodo stampaTitoli che visualizzi i titoli dei libri in negozio. Definire una classe ProvaNegozio4 che implementi un metodo main, che: 1. chieda all'utente con JOptionPane.showInputDialog(...) i titoli e li memorizzi in un oggetto array di stringhe lista di 200 elementi. 2. crei un oggetto Negozio inizializzato - tra gli altri argomenti - con lista. 3. visualizzi i titoli chiamando il metodo stampaTitoli.