ho fatto questo programma

codice:
public class prova {


	public prova (int[] e, String[] nom, String[] cogn){
	    prova[] pro = new prova[3];
	    for (int i = 0 ; i <3; i++){
		 pro[i] = new prova(e,nom,cogn);
		
	}
	}
}
main

codice:
import javax.swing.JOptionPane;
public class arrayprovamain {

	public static void main(String[] args) {
		int [] e = new int[3];
		String [] nom = new String[3];
		String[] cogn = new String[3];
		
		for (int i = 0; i <3 ; i++){
		e[i] = Integer.parseInt(JOptionPane.showInputDialog("inserire età"));
		nom[i] = JOptionPane.showInputDialog("inserire nome");
		cogn[i] = JOptionPane.showInputDialog("inserire cognome");
		
		}
		prova prov = new prova(e,nom,cogn);
		
		for (int j = 0; j<3 ; j++){
			System.out.println (prov.e);  // PROV.E NON ME LO TROVA COME MAI??
		}

	}

}
il programma non funziona e oltre a non trovare prov.e oppure prov.cogn mi da anche un errore grave che sarebbe questo

codice:
xception in thread "main" java.lang.StackOverflowError
	at prova.<init>(prova.java:5)
	at prova.<init>(prova.java:8)  //questo me lo da per  qualche centinaia di     volte