Classe con oggetto come attributo
Qui trovi un insieme di esercizi che ti permetteranno di metterti alla prova con la creazione di classi aventi come attributo un oggetto.
Esercizi sulla progettazione di classi contenenti un oggetto
Esercizio 1: La classe Computer
Realizzare la classe Computer con i seguenti quattro attributi: marca (String), cpu (oggetto di tipo CPU), ram (oggetto di tipo RAM), disco (oggetto di tipo Disco). Tale classe deve avere i seguenti metodi:
un costruttore per inizializzare tutti gli attributi;
getter e setter;
un metodo in grado di calcolare il costo totale del computer (somma dei prezzi dei tre componenti principali cpu, ram e disco);
metodo toString in grado di descrivere il computer e il costo totale.
Creare la classe CPU con gli attributi:
modello (String): il modello della CPU (es. "Intel i7", "AMD Ryzen 5").
frequenza (double): la frequenza in GHz.
prezzo (double): il costo della CPU.
Metodi: costruttore per inizializzare tutti gli attributi, getter e setter, metodo toString per descrivere la CPU.
Creare la classe RAM con gli attributi:
capacita (int): capacità in GB (es. 8, 16).
tipo (String): tipo di RAM (es. "DDR4").
prezzo (double): il costo della RAM.
Metodi: costruttore per inizializzare tutti gli attributi, Getter e setter e metodo toString per descrivere la RAM.
Creare la classe Disco con gli attributi:
tipo (String): tipo di disco (es. "SSD", "HDD").
capacita (int): capacità in GB (es. 256, 1024).
prezzo (double): il costo del disco.
Metodi: costruttore per inizializzare tutti gli attributi, getter e setter e metodo toString per descrivere il disco.
Classe principale (Main):
Far inserire agli utenti i dati di due computer tramite la classe Scanner.
Creare i relativi oggetti Computer.
Stampare i dettagli dei computer, incluso il costo totale.
Si realizzi il class diagram per tutte le classi riportate nell'esercizio.
Esercizio 2: Escape Room e prenotazioni
L'esercizio ha lo scopo di modellare un sistema di prenotazione per una Escape Room. Si richiede di creare stanze di gioco e gestire prenotazioni verificando eventuali conflitti tra di esse.
Crea la classe EscapeRoom con almeno questi attributi:
nome (String)
difficolta (int, da 1 a 5)
durata (int, in minuti)
Crea la classe Prenotazione con questi attributi:
data (String, es. "12/03/2025")
orario (String, es. "15:30")
giocatori (int, numero di partecipanti)
stanzaPrenotata (oggetto di tipo EscapeRoom)
Aggiungi un metodo conflittoCon(Prenotazione altra) nella classe Prenotazione che restituisca true se le due prenotazioni sono state fatte per la stessa stanza di EscapeRoom nella stessa data e nello stesso orario, altrimenti false.
Nel metodo main():
Crea tre Escape Room con dati inseriti direttamente nel codice.
Chiedi all’utente di inserire due prenotazioni tramite input (Scanner).
Dopo aver creato le due prenotazioni, verifica se vanno in conflitto e mostra il risultato a schermo.
Il codice deve funzionare in un ciclo che permetta di inserire nuove coppie di prenotazioni finché l'utente non decide di terminare.
Al termine mostrare a schermo il numero di prenotazioni che si sono create nel programma (usare un attributo statico per contare gli oggetti di tipo Prenotazione).
Si realizzi il class diagram per le classi riportate nell'esercizio.