Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    37

    [Java] Impostazione programma

    Vanno realizzate dell classi che rappresentino dati relativi a gestori di telefonia fissa. Ogni gestore divide la sua rete in reti più piccole, che possono a loro volta essere ulteriormente suddivise. Si realizzino le seguenti classi:

    Gestore
    Un gestore è caratterizzato da una stringa (il suo nome) dall'elenco di reti che gestisce.
    Rete
    Una rete è caratterizzata dal un suo codice identificativo (una stringa), dall'elenco delle sue sottoreti (ogni sottorete è sempre un oggetto Rete) e dai suoi numeri (questi sono numeri che si trovano all'interno della rete ma di nessuna delle sue sottoreti)
    Numero
    Per ogni numero di telefono vanno memorizzati il numero stesso (come intero) e una stringa che indica l'intestatario. Un numero può essere di due tipi: privato o a pagamento; nel secondo caso, va memorizzato anche il costo alla risposta e al secondo (usare due sottoclassi NumeroPrivato e NumeroPagamento)
    Queste classi vanno messe in un package tel. 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)

    qualcuno mi aiuterebbe con questo esercizio? non riesco a impostarlo

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] Impostazione programma

    Originariamente inviato da Keila
    qualcuno mi aiuterebbe con questo esercizio? non riesco a impostarlo
    Quando si deve realizzare una struttura dati con più classi in relazione tra di loro, ti conviene partire dall'elemento più "interno", cioè nel tuo caso dal Numero.
    Visto che hai parlato di due sottoclassi NumeroPrivato e NumeroPagamento, deduco che un "Numero" non debba essere istanziabile, quindi potrei suggerire di rendere Numero una classe astratta e le due sottoclassi chiaramente non astratte.
    I dati in comune (es. l'intestatario) mettile nella classe astratta con gli appositi get. Poi fai in modo che i costruttori delle 2 sottoclassi passino i dati alla superclasse.

    Per le altre classi, devi stabilire che tipo di collezione usare. Quando nel Gestore devi gestire l'elenco di reti, devi stabilire cosa ci devi fare con questa "collezione" di reti. Deve essere "sorted"? Devi poter accedere ad una rete tramite una "chiave" (che so ... il suo codice identificativo)? Devi garantire che nella collezione le reti siano univoche?
    Dalle risposte a queste e altre domande viene fuori se ti serve usare un TreeMap piuttosto che un ArrayList o altro.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    37
    Esattamente, la parte della classe astratta l'avevo capita, la cosa dubbia sono le altre 2 classi, non ho idea di come rappresentare la rete in questo caso, la parte della chiave identificativa mi fa quasi pensare che dovrei utilizzare un map, ma non ne sono sicura

  4. #4
    Sia per Gestore che per Rete potresti utilizzare 2 variabili di classe: una String che rappresenta il nome nel caso di Gestore e il codice nel caso di Rete; un Vector<Rete> che rappresenta l'elenco di reti per il Gestore e l'elenco delle sottoreti per Rete:

    codice:
    public class Rete{
       private String codice = "";
       private Vector<Rete> sottoreti = new Vector<Rete>();
    
       .....
    
       public String getCodice(){
          return this.codice;
       }
    
       public Vectro<Rete> getSottoreti(){
          return this.sottoreti;
       }
    
       public void setCodice(String value){
          this.codice = value;
       }
    
       public void setSottoreti(Vector<Rete> elenco){
          this.sottoreti = sottoreti;
       }
    
    
       public void addSottorete(Rete rete){
          sottoreti.add(rete);
       }
    
    }
    Analogamente per Gestore sostituendo String codice con String nome.
    Al mio segnale... scatenate l'inferno!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.