Ciao a tutti, sono un nuovo utente appena iscritto nel forum.
Sono da poco entrato nel mondo di Java e sto iniziando a fare dei programmini per esercitarmi,
ho già delle conoscenze di c++ e ho già bene in testa il concetto di array e matrici.
Oggi mi sono ritrovato durante un errore che non riesco bene a chiarire, ho fatto varie ricerche su google e ho scoperto che il NullPointerException è il problema più comune in java.
Non so proprio più che pesci pigliare non riesco a capire come strutturare il codice, potreste aiutarmi?

Vi allego il codice


Main
codice:
import javax.swing.JOptionPane;

public class Main {

	public static void main(String[] args) {
		String esci = "";
		int n=0;
		int dimensione=0;
		JOptionPane.showMessageDialog(null, "Biblioteca");
		
		do{
			String line = "";
			line = JOptionPane.showInputDialog("Quanti libri vuoi inserire?");
			try{
			dimensione=Integer.parseInt(line);
			if(dimensione<=0&&dimensione>100)  JOptionPane.showMessageDialog(null, "Devi inserire un numero fra 0 e 100");
			}
			catch(NumberFormatException ex)
			{
				JOptionPane.showMessageDialog(null, "Errore di codifica");
				return;
			}
		}while(dimensione<=0&&dimensione>100);
		Book libro[]= new Book[dimensione];
		do{	
		libro[n].set_isbn(JOptionPane.showInputDialog("Inserisci l'ISBN del " +(n+1)+"° libro" ));	
		n++;
		}while(n<dimensione);
		
		do{
		do{
			
			String line7=JOptionPane.showInputDialog("Vuoi uscire dal programma?");
			esci =String.valueOf(line7);
			if((!esci.equals("si"))&&(!esci.equals("no"))) JOptionPane.showMessageDialog(null,"Inserisci 'si' oppure 'no'!!");
			
		
		}while((!esci.equals("si"))&&(!esci.equals("no")));			
	}
	while(!esci.equals("si"));
	}

}
Book
codice:
public class Book {

	private String _isbn = "";

	public Book(String isbn) {
		this._isbn=isbn;
			}



	public void set_isbn(String _isbn) {
		this._isbn = _isbn;
	}

	public String get_isbn() {
		return _isbn;
	}


}
Console
codice:
Exception in thread "main" java.lang.NullPointerException
	at Main.main(Main.java:30)  <=== forse ho riformattato il testo quindi vi dico... a quanto ho capito l'errore è alla riga "libro[n].set_isbn(JOptionPane.showInputDialog("Inserisci l'ISBN del " +(n+1)+"° libro" ));"