Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Problema con le classi

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    3

    Problema con le classi

    Salve.

    Ho iniziato a studiare Java da poco tempo, e oggi ho deciso di creare un programma che gestisca una Biblioteca. Ho creato 4 classi: Libro, Mensola, Scaffale e Biblioteca, più il main.

    Però purtroppo quando voglio fare una prova prima di continuare a scrivere il codice, il compilatore (nel mio caso ho provato sia con Eclipse e sia con Bluej) mi segnala un errore strano:


    codice:
    Exception in thread "main" java.lang.NullPointerException
        at Mensola.<init>(Mensola.java:12)
        at Scaffale.<init>(Scaffale.java:12)
        at Biblioteca.<init>(Biblioteca.java:13)
        at Main.main(Main.java:14)

    Non riesco a capire il problema, ho provato in tutti i modi... Scusate la mia ignoranza, ma ho appena iniziato

    Qui ho i codici delle classi.

    Libro:

    codice:
    public class Libro {
        private String titolo;
        private String autore;
        
        private int pagine;
        
        public Libro()
        {
            titolo = null;
            autore = null;
            pagine = 0;
        }
        
        public void setPagine(int p)
        {
            pagine = p;
        }
        
        public void setTitolo(String t)
        {
            titolo = t;
        }
        
        public void setAutore(String a)
        {
            autore = a;
        }
        
        public int getPagine()
        {
            return pagine;
        }
        
        public String getTitolo()
        {
            return titolo;
        }
        
        public String getAutore()
        {
            return autore;
        }
    }

    Mensola:

    codice:
    public class Mensola {
        public Libro mensola[];
        private static final int MAX_NUM = 5;
        
        public boolean contr;
        public int ripiano_ok;
        
        public Mensola()
        {
            for (int i = 0; i < MAX_NUM; i++)
            {
                this.mensola[i] = null;
            }
            contr = false;
            ripiano_ok = 0;
        }
        
        public int getMAX_NUM()
        {
            return MAX_NUM;
        }
    }

    Scaffale:

    codice:
    public class Scaffale {
        public Mensola scaffale[];
        private static final int MAX_NUM = 3;
        
        public boolean contr;
        public int ripiano_ok;
    
    
        public Scaffale()
        {
            for (int i = 0; i < MAX_NUM; i++)
            {
                this.scaffale[i] = new Mensola();
            }
            contr = false;
            ripiano_ok = 0;
        }
        
        public void controllo()
        {
            for (ripiano_ok = 0; ripiano_ok < MAX_NUM; ripiano_ok++)
            {
                if (scaffale[ripiano_ok].mensola[scaffale[ripiano_ok].ripiano_ok] == null)
                {
                    contr = true;
                }
                if (contr)
                    break;
            }
        }
    }

    Biblioteca:

    codice:
    public class Biblioteca {
        private Scaffale[] biblioteca;
        private static final int MAX_NUM = 4;
        
        public int ripiano;
        
        public boolean ricerca;
        
        public Biblioteca()
        {
            for (int i = 0; i < MAX_NUM; i++)
            {
                this.biblioteca[i] = new Scaffale();
            }
            ripiano = 0;
            ricerca = false;
        }
    
    
        public void addLibro()
        {
            for (int i = MAX_NUM; i < 0; i--)
            {
                biblioteca[i].controllo();
                if (biblioteca[i].contr)
                {
                    biblioteca[i].scaffale[biblioteca[i].ripiano_ok].mensola[biblioteca[i].scaffale[i].ripiano_ok] = new Libro();
                    biblioteca[i].scaffale[biblioteca[i].ripiano_ok].mensola[biblioteca[i].scaffale[i].ripiano_ok].setPagine(Main.pag);
                    biblioteca[i].scaffale[biblioteca[i].ripiano_ok].mensola[biblioteca[i].scaffale[i].ripiano_ok].setTitolo(Main.tit);
                    biblioteca[i].scaffale[biblioteca[i].ripiano_ok].mensola[biblioteca[i].scaffale[i].ripiano_ok].setAutore(Main.aut);
                }
            }
        }
        
        public void visualizzazione()
        {
            for (ripiano = 0; ripiano < MAX_NUM; ripiano++)
            {
                System.out.println("Scaffale numero " + ripiano);
                for (int i = 0; i < 3; i++)
                {
                    System.out.println("Mensola numero " + i);
                    for (int j = 0; j < 5; j++)
                    {
                        //if (biblioteca[ripiano].scaffale[i].mensola[j].getPagine() != 0)
                            System.out.print("Vuoto | ");
                        //else
                            //System.out.print(this.biblioteca[ripiano].scaffale[i].mensola[i].getTitolo() + " | ");
                    }
                }
            }
                System.out.println("");
        }
        
        public void ricerca_libro(String tit)
        {
            ricerca = false;
            for (int k = 0; k < MAX_NUM; k++)
                for (int i = 0; i < 3; i++)
                    for (int j = 0; j < 5; j++)
                    {
                        if (biblioteca[k].scaffale[i].mensola[j].getTitolo() == tit)
                        {
                            System.out.println("Libro Trovato! Si trova in: Scaffale " + k + "Mensola " + i + "Posto " + j);
                            ricerca = true;
                        }
                        if (ricerca)
                            break;
                    }
        }
    }

    Main (che devo completare):

    codice:
    import java.util.Scanner;
    import javax.swing.JOptionPane;
    
    
    public class Main {    
        public static int pag;
        public static String tit, aut;
        
        @SuppressWarnings("resource")
        public static void main(String args[])
        {
            int risposta1;
            String titolo;
            
            Biblioteca biblioteca = new Biblioteca();
            
            Scanner scan = new Scanner(System.in);
            
            System.out.println("BENVENUTO IN BIBLIOTECA!");
            System.out.println("");
            System.out.println("Cosa vuoi fare?");
            System.out.println("1) ----> Aggiungere un Libro");
            System.out.println("2) ----> Controllare lo stato degli Scaffali");
            System.out.println("3) ----> Prendere un Libro in prestito");
            System.out.println("4) ----> Restituire un Libro");
            System.out.println("5) ----> Cercare un Libro");
            
            risposta1 = scan.nextInt();
            
            switch (risposta1)
            {
                case 1: System.out.print("Inserisci Titolo: ");
                        tit = scan.next();
                        System.out.print("Inserisci Autore: ");
                        aut = scan.next();
                        System.out.print("Inserisci Pagine: ");
                        pag = scan.nextInt();
                        biblioteca.addLibro();
                        break;
                        
                case 2: biblioteca.visualizzazione();
                        break;
                
                case 3: System.out.print("Digitare il titolo del Libro da prendere in prestito: ");
                        titolo = scan.next();
                        biblioteca.ricerca_libro(titolo);
            }        
        }
    }

    Grazie in anticipo per l'aiuto
    Ultima modifica di LeleFT; 21-11-2014 a 12:39 Motivo: Aggiunti i tag CODE

Tag per questa discussione

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.