codice:
publicvoid  set_nome(String   nome,int i){
this.nome=newString[200];

this.nome[i]=nome;
}
//basta questo senza il new String[200]
this.nome[i] = nome;

Se fai new String[200] sostituisci il riferimento ogni volta che invochi set_nome() ad un array di 200 record VUOTO.

Quindi o lo istanzi nella classe e poi lo inizializzi nel costruttore, oppure lo inizializzi e lo riempi man mano che esegui i set_nome.
Magari stai attento ai limiti di indice.