Laboratorio di Programmazione - A.A. 2004/05
Parte 1.
Realizzare l'interfaccia Confrontabile per il confronto di due
oggetti. Tale interfaccia contiene la seguente dichiarazione di funzione:
public int confrontaCon(Confrontabile c)
Il significato inteso di questa funzione è che essa
restituisce -1 se l'oggetto di invocazione è più piccolo
di c, restituisce 0 se l'oggetto di invocazione è grande come c, restituisce
1 se l'oggetto di invocazione è più grande di c. Tale interfaccia
deve essere contenuta nel package utilita.
Parte 2.
Realizzare una Collezione Ordinata di oggetti qualsiasi che implementano l'interfaccia Confrontabile.
La classe CollezioneOrdinata presenta le seguenti funzionalità:
;
Confrontabile
, lo aggiunge alla Collezione Ordinata (mantenendo la collezione
ordinata); se c è già presente nella collezione, non
fa nulla; Confrontabile,
lo elimina dalla collezione; se c non è presente non fa nulla;
Confrontabile presenti nella collezione;Confrontabile,
restituisce un intero rappresentante la posizione di c nella collezione
(0 per il primo elemento, quantiElementi-1 per l'ultimo), oppure
restituisce -1 se tale riferimento non è presente nella collezione.
Confrontabile nella collezione
ordinata (0 per il primo elemento, quantiElementi-1 per l'ultimo),
restituisce il riferimento di tipo Confrontabile che si trova
in posizione n nella collezione; se l'indice della posizione è
fuori dai limiti si restituisce null; Confrontabile contenente tutti i riferimenti di tipo Confrontabile
presenti nella collezione ordinata La classe CollezioneOrdinata deve essere implementata all'interno del package utilita.
Suggerimento: Per realizzare i metodi della classe
CollezioneOrdinata si
prenda spunto dai metodi della classe Guardaroba
svolti nell'esercitazione 2.
Parte 3.
Realizzare la classe Guardaroba
(vedi esercitazione 2),
all'interno del package packg,
facendo uso della classe CollezioneOrdinata. Si ricorda
che il Guardaroba ha un nome e una collezione di abiti depositati.
Ogni abito consegnato è contrassegnato da un codice (una stringa) che
lo identifica univocamente e la collezione degli abiti depositati nel guardaroba
deve essere mantenuta ordinata rispetto a questo codice. Gli oggetti di tipo
Abito sono rappresentati tramite una classe Java Abito
già definita che si trova in un package packa, il cui codice
è in packa.
Gli oggetti Guardaroba supportano le seguenti funzionalità:
Abito corrispondente,
oppure lancia una eccezione se tale codice non è presente nel guardaroba;
Suggerimento: Per realizzare la classe Guardaroba facendo
uso della classe CollezioneOrdinata, si realizzi
una ulteriore classe CodiceAbito
contenente un campo per il codice,
un campo per l'abito e che implementi l'interfaccia Confrontabile.
Parte 4.
Verificare che i clienti della Guardaroba
sviluppati nell'esercitazione 2
funzionino correttamente per questa seconda versione della classe Guardaroba.