Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    PROBLEMA:Enum

    Sto facendo un progetto biblioteca che comprende:Articolo che è superclasse di Rivista e Libro, Utente e la classe Biblioteca dove istanzio metodi di ricerca,eliminazione...ecc..
    Purtroppo nella classe Articolo sono costretto ad utilizzare enum per il campo disciplina e stato,fin qui tutto bene peccato che quando istanzio l'oggetto Articolo dentro la Biblioteca mi da errore sull'enum
    PERCHE'?
    vi metto il pezzo di codice

    ARTICOLO
    import java.util.*;
    public class Articolo {
    //intero auto incrementato
    private static int inventario=1;

    private boolean prestitoAmmesso = true;
    public enum Disciplina{GEOGRAFIA,STORIA,ARTE,LETTERATURA,PESCA ,POKER};
    public Disciplina disc;

    // Il numero di scaffale deve esser e >0 quindi fare controlli per inserimento.. ecezzioni
    private int nScaffale;

    public enum Stato{NUOVO, BUONO, CONSUMATOINTEGRO, PAGINEMANCANTI, COPERTINAROTTA};
    public Stato sta;
    private boolean inPrestito = false;
    private int nTessPrestito = 0;

    BIBLIOTECA
    import java.util.*;
    public class Articolo {
    //intero auto incrementato
    private static int inventario=1;

    private boolean prestitoAmmesso = true;
    public enum Disciplina{GEOGRAFIA,STORIA,ARTE,LETTERATURA,PESCA ,POKER};
    public Disciplina disc;

    // Il numero di scaffale deve esser e >0 quindi fare controlli per inserimento.. ecezzioni
    private int nScaffale;

    public enum Stato{NUOVO, BUONO, CONSUMATOINTEGRO, PAGINEMANCANTI, COPERTINAROTTA};
    public Stato sta;
    private boolean inPrestito = false;
    private int nTessPrestito = 0;


    Scusate ancora la pesantezza ma non c'è nessuno che mi sa dire pechè o come togliere l'errore su enum in biblioteca

  2. #2
    Mi sa che hai sbagliato ad incollare il codice. Manca la classe BIBLIOTECA.
    Al mio segnale... scatenate l'inferno!

  3. #3

    Adesso ci siamo(enum)

    è vero....scusate


    public class Biblioteca {

    private static final int Nutenti = 10;
    private static final int Nlibri = 10;

    private static int indiceUtenti = 0;
    private static int indiceLibri = 0;
    private String nomeBiblioteca;
    private String citta;
    private String via;
    private int nVia;
    private int cap;
    private int nTelefono;



    //array di articoli, la dimensione e fissa e costante
    // possono essere assegnati tutti i tipi di libro e articolo
    private Articolo[] articoliLib;
    //arrai di utenti, tutti gli utenti della biblioteca
    private Utente[] utentiLib;

    public Biblioteca(String nomeBiblioteca, String citta, String via, int nVia,
    int cap, int nTelefono){
    this.nomeBiblioteca = nomeBiblioteca;
    this.citta = citta;
    this.via = via;
    this.nVia = nVia;
    this.cap = cap;
    this.nTelefono = nTelefono;

    //istanzio gli gli arrai
    articoliLib = new Articolo[Nutenti];
    utentiLib = new Utente[Nutenti];
    }

    //dato un numero di invenraio, controlla il campo inventario usando il numero
    //come indice dell'arry, guarda se l'oggetto ha l-indice numero di inventario
    // ugale, se non l'ha = false
    public boolean dellaBiblioteca(int inventario){
    boolean faParte = false;
    if (inventario == ((articoliLib[inventario])).getInventario())
    return true;
    else
    return faParte;
    /*CONSIDERAZIONI: alla dichiarazione dell'arry gli oggetto non sono ancora instanziate
    *
    * */
    }

    /* metodo che mi riempe l'arry di aricoli, due metodi mi instanziano oggetti di tipo libro
    * e di tipo rivista.
    *
    * controllare se va bene controllare l'indice NULL
    * Problemi di gestione ENUM
    *
    */
    public void aggiungiLib(String titolo, String autore, String editore, GregorianCalendar anno,
    String edizione, int nPagine, Disciplina disc, int nScaffale){

    articoliLib[indiceLibri] = new Libro(titolo, autore, editore, anno, edizione, nPagine, disc, nScaffale);
    indiceLibri++;
    }

    public void aggiungiRiv(String titolo, String editore, GregorianCalendar anno,
    String edizione, GregorianCalendar data, int numero, Periodicita per,
    int nPagine, Disciplina disc,int nScaffale){

    articoliLib[indiceLibri]= new Libro(titolo, editore, anno, edizione, data, numero, per,
    nPagine, disc, nScaffale);
    indiceLibri++;
    }


    Articolo
    ublic class Articolo {
    //intero auto incrementato
    private static int inventario=1;

    private boolean prestitoAmmesso = true;
    public enum Disciplina{GEOGRAFIA,STORIA,ARTE,LETTERATURA,PESCA ,POKER};
    public Disciplina disc;

    // Il numero di scaffale deve esser e >0 quindi fare controlli per inserimento.. ecezzioni
    private int nScaffale;

    public enum Stato{NUOVO, BUONO, CONSUMATOINTEGRO, PAGINEMANCANTI, COPERTINAROTTA};
    public Stato sta;
    private boolean inPrestito = false;
    private int nTessPrestito = 0;

    /*
    * variabili che mi servo per gestire i prestiti
    *
    */
    private GregorianCalendar dataPrestito;
    private GregorianCalendar dataFinePrestito;// deve essere + 15gg

    private String titolo;
    private String editore;
    private GregorianCalendar anno;

    // costruttore della classe, assegna titolo,editore,anno,nScaffale e
    // incrementa il numero di inventario
    public Articolo(String titolo, String editore, GregorianCalendar anno,
    Disciplina disc, int nScaffale){
    this.titolo=titolo;
    this.editore=editore;
    this.anno=anno;// forse e da specificare girno mese anno campo per campo
    this.nScaffale = nScaffale;
    }

    public String toString(){
    String stringa;
    stringa="Titolo :"+titolo+"Editore :"+editore+"Num scaffale :"+nScaffale+
    "Anno :"+anno+"Disciplina :"+disc+"Inventario :"+inventario;
    return stringa;
    }

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Dato che Disciplina e Stato sono membri della classe Articolo, allora in altre classi esterne ad Articolo non puoi usare solo i nomi semplici Disciplina e Stato ma devi qualificarli mettendo davanti Articolo.

    Quindi per i tipi:

    Articolo.Disciplina
    Articolo.Stato

    e se vuoi fare riferimento ad una costante delle enum, ad es.:

    Articolo.Disciplina.GEOGRAFIA
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Ho riunito le discussioni.

    Attenzione a non confondere il pulsante "Nuovo" (al di fuori delle discussioni) con il pulsante "Rispondi" all'interno della discussione.

    PS: Occhio anche al titolo... il regolamento prevede titoli significativi senza l'ausilio di parole inutili come "Problema", "Help", ecc... (se posti in un forum è sufficientemente ovvio che hai un problema).

    Correggo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Grazie per l'aiuto...mi siete stati molto utili...
    mi sapreste dire come implemento il compareTo nella classe Articolo?

    Grazie ankora e ciao

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da the magician
    mi sapreste dire come implemento il compareTo nella classe Articolo?
    Basta che implementi l'interfaccia Comparable. E visto che hai usato le enum, stai usando almeno Java 5, quindi è meglio farlo con i generics.

    codice:
    public class Articolo implements Comparable<Articolo>
    {
        ....
    
        public int compareTo (Articolo art)
        {
            // qui implementi la logica per stabilire e ritornare se 'this' è minore/maggiore/uguale a 'art'.
        }
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.