Salve ragazzi ho un problema con un piccolo programma, che eredita una classe e deve memorizzare delle informazioni tramite input, ma vengono segnalati degli errori in esecuzione, appena dopo inserisco il primo nome, l'errore č questo

Exception in thread "main" java.lang.NullPointerException
at studenti.<init>(studenti.java:24)
at studenti.main(studenti.java:42)

E questo č il codice, grazie a chi vorrā aiutarmi

codice:
import javax.swing.*;
import java.util.*;

class dati
{
	public String nome="";
	public String cognome="";
	public int eta=0;
}

public class studenti extends dati
{
	public studenti [] n = new studenti [5];

	studenti()
	{
		for(int i=0; i<=4; i++)
		{
			String t = JOptionPane.showInputDialog("Inserire nome");
			n[i].nome = t;
			String z = JOptionPane.showInputDialog("Inserire cognome");
			n[i].cognome = z;
			String y = JOptionPane.showInputDialog("Inserire etā");
			n[i].eta = Integer.parseInt(y);
		}
	}

	public void mostra()
	{
		for(int i=0; i<=4; i++)
		{
			System.out.println (n[i].nome);
			System.out.println (n[i].cognome);
			System.out.println (n[i].eta);

		}
	}

	public static void main(String [] args)
	{

		studenti a = new studenti();
		a.mostra();
		System.exit(0);

	}

}