Esame laboratorio di programmazione - Compito B
Parte I
Vanno realizzate dell classi che rappresentino dati
relativi a gestori di telefonia mobile. Ogni gestore divide la
sua rete in reti più piccole, che possono a loro volta
essere ulteriormente suddivise in altre reti. Le reti che
non sono suddivise in altre reti contengono delle celle. Si
realizzino le seguenti classi:
- Gestore
- Un gestore è caratterizzato da una stringa (il
suo nome), ed ha un elenco delle sue reti che gestisce.
- Rete
- Una rete è caratterizzata dal un suo codice
identificativo (una stringa); una rete può essere di
due tipi: ReteComposta, che contiene al suo interno
altre reti; e ReteCelle, che contiene al suo
interno delle celle
- Cella
- Una cella è caratterizzata dalle sue coordinate e
dalla lista dei numeri dei cellulari che attualmente
risultano trovarsi all'interno della cella
- Numero
- Per ogni numero di telefono vanno memorizzati il numero
stesso (come intero) e una stringa che indica l'intestatario.
Queste classi vanno messe in un package mobi. Tutte
le classi devono essere incapsulate e i loro oggetti non
modificabili. Non sono ammessi valori nulli. Vanno realizzati
i seguenti metodi in tutte le classi:
- costruttore e metodi get
- metodi standard toString, equals,
hashCode e clone (che realizza la
clonazione profonda)
Parte II
In una classe al di fuori del package inserire i seguenti
metodi:
- boolean cellaMultiple(Gestore g, int numero)
- ritorna true se il numero risulta presente in due o
più celle; notare che viene dato un intero, e non
un oggetto Numero
- Point coordinata(Gestore g, int numero)
- dato un numero, calcola le coordinate della cella in cui
si trova; se il numero non si trova in nessuna cella oppure
in più di una, restituire null