fondamenti di informatica corsi di laurea in ingegneria gestionale canale al esercitazione 6...

8
Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 6 ARGOMENTI: LAVORARE CON CLASSI METODI DELL’ISTANZA, COSTRUTTORI

Upload: fiorenza-vigano

Post on 02-May-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 6 ARGOMENTI: LAVORARE CON CLASSI METODI DELLISTANZA, COSTRUTTORI

Fondamenti di Informatica Corsi di Laurea in Ingegneria

Gestionale Canale AL

ESERCITAZIONE 6ARGOMENTI:

LAVORARE CON CLASSI

METODI DELL’ISTANZA,

COSTRUTTORI

Page 2: Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 6 ARGOMENTI: LAVORARE CON CLASSI METODI DELLISTANZA, COSTRUTTORI

Esercizio 1Progettare 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.

Page 3: Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 6 ARGOMENTI: LAVORARE CON CLASSI METODI DELLISTANZA, COSTRUTTORI

Esercizio 2Modificare la classe Negozio dell'esercizio precedente 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, inizializzando in modo predefinito (ore 10 e 18) l’orario 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().

Page 4: Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 6 ARGOMENTI: LAVORARE CON CLASSI METODI DELLISTANZA, COSTRUTTORI

Riassunto degli esercizi precedentiFinora 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

Page 5: Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 6 ARGOMENTI: LAVORARE CON CLASSI METODI DELLISTANZA, COSTRUTTORI

Esercizio 3Modificare 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 l’orario di apertura: 10 e 18;

• un metodo toString() che restituisca una stringa organizzata cosi: Ragione sociale: "Giulio Abbigliamento”Proprietario: Giulio RossiOrario 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().

Page 6: Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 6 ARGOMENTI: LAVORARE CON CLASSI METODI DELLISTANZA, COSTRUTTORI

La classe CalendarLa classe Calendar1. 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.

Page 7: Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 6 ARGOMENTI: LAVORARE CON CLASSI METODI DELLISTANZA, COSTRUTTORI

Esercizio 41. 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 RossiOrario del negozio: 9:00 . 21:00.Siamo aperti!

Page 8: Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 6 ARGOMENTI: LAVORARE CON CLASSI METODI DELLISTANZA, COSTRUTTORI

Esercizio 5Fra 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 .