Para que sirve personas[i] = new Persona();

Soy nuevo en esta pagina, y no tan experto programando.

Tengo la siguiente duda:

En mi codigo tengo esto: personas[i] = p;

Siendo p mi objeto de la clase Persona(), y personas[i] mi arreglo.

//Variables
    Persona personas[] = new Persona[10];
    String respuesta = ""; 
    boolean condicion = false;
    int i = 0;
    Persona p = new Persona();   

Ejemplo: enter image description here

Pero al ejecutarlo me di cuenta que al imprimir el arreglo, solo me daba los ultimos datos que ingrese, y se repetia de la siguiente forma:

Paciente: Paciente 1
Tu imc es: 24,80
Peso normal

Paciente: Paciente 1
Tu imc es: 24,80
Peso normal

Despues cambiƩ personas[i] = p; por personas[i] = new Persona(); por recomendacion de un amigo y funciono, pero no supe porque haciendo eso funciono:

Paciente: Paciente 1
Tu imc es: 24,80
Peso normal

Paciente: Paciente 2
Tu imc es: 24,69
Peso normal

Les agradezco la ayuda de antemano.