Laboratorio di Programmazione - A.A. 2004/05
Parte 1.
Realizzare una classe pubblica Libro
, in un package libro
,
che reppresenti le seguenti informazioni di su un libro:
Autore
nel package (i dettagli della classe Autore
a noi
non sono noti eccetto che per la presenza di un costruttore con un argomento
stringa);Si equipaggi la classe con uno o più costuttori opportuni e con metodi
per recuperare le informazioni in essa memorizzate. Si ridefiniscano equals()
e clone()
ereditate da Object
in modo che facciano
il test di uguaglianza profonda e la copia profonda rispettivamente. Si ridefinisca
inoltre hashCode()
in modo che sia coerente con il test di uguaglianza.
Parte 2.
Realizzare una classe pubblica CatalogoLibri
che gestisca un catalogo
di libri. Un oggetto CatalogoLibri
è caratterizzato da un
nome (una stringa) e l'insieme dei libri in esso contenuto, e supporta le seguenti
funzionalità:
CatalogoLibri
avente s per nome e che inizialmente non ha alcun libro; Iterator
per scandire l'insieme dei libri nel catalogo.Suggerimento: si utilizzi una classe che implementa l'interfaccia Set
per memorizzare l'insieme dei libri. Si testi la classe realizzata con un opprotuno
cliente.
Parte 3.
Realizzare una pubblica classe che implementi l'interfaccia Set
usando una tavola hash.Si realizzino le "bulk operation"
lanciando l'eccezione UnsupportedOperationException
. Realizzare
inoltre il relativo iteratore che implementi l'interfaccia Iterator.
In quest'ultimo si realizzi il metodo opzionale remove
lanciando
l'eccezione UnsupportedOperationException
. Riscrivere la classe
realizzata nella Parte 1 utilizzando come Set
l'implementazione
appena realizzata.