Perchè hai creato un bel loop fra i costruttori: osserva bene... nel costruttore con un solo parametro intero richiami il costruttore con un solo parametro String, ma in quest'ultimo richiami quello precedente... bello, eh? 
Prova così:
codice:
class persone
{
public int annodinascita;
public String Cognome=new String();
// Costruttori
public persone(int annonascita)
{
this(annonascita, "Non Conosco");
}
public persone(String Cognome)
{
this(0, Cognome);
}
public persone(int annonascita , String Cognome)
{
annodinascita=annonascita;
this.Cognome=Cognome;
}
// Funzione che calcola l'età del soggetto;
public int calcolaeta ( int annoattuale )
{
return ( annoattuale - annodinascita );
}
}
Poi, abituati a utilizzare i tag CODE per la scrittura del codice...
Ciao.