Ok, la variabile posta a null è la y letta nel parseInt; evidentemente per qualche motivo è null: controlla il valore di y prima di darla in pasto a parseInt.
Tra l'altro, una cosa proprio di base... nella classe studenti hai questo attributo:
public studenti [] n = new studenti [5];
sicuro sia una buona scelta?
Tra l'altro ti va bene perchè è semplicemente un contenitore di studenti, se fosse stato tipo
public studenti n = new studenti();
avresti avuto una StackOverflowException, poichè la costruzione di un oggetti di tipo studenti richiamava a sua volta la creazione di un altro oggetto dello stesso tipo.