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
.