2

tengo una duda con respecto a declarar variables basadas en clase. Se que cuando declaro una clase puedo instanciarla por medio de una referencia al objeto, por ejemplo:

Estudiante estudiante1 = new Estudiante();

Por lo que sé, aquí estoy declarando e inicializando una variable de tipo "Estudiante" que hace referencia a un objeto, y por medio de esta puedo acceder a los miembros de la clase, pero entonces, qué sucede si yo sólo declaro una variable de este tipo:

Estudiante variable;

¿Para qué me serviría algo así? Es decir, ¿esto se considera una instancia? ¿Qué cosas podría yo hacer con una variable de tipo "Estudiante" a la que no le mandé a llamar a su constructor en su declaración, se que no puedo acceder a los miembros de la clase por medio de ella, pero entonces ¿Qué utilidad tiene? GRACIAS!

JimmySnow
  • 25
  • 5

1 Answers1

2

Te sirve para declarar la variable, e intanciarla cuando la necesites.

Que pasa por ejemplo, si no queres Estudiante generico, si no que tenes una clase Lista de estudiantes, y tu variable Estudiante va a apuntar a un estudiante en particular?

Como la lista de estudiantes tiene un monton de objetos del tipo estudiante, entonces si vos queres guardar una referencia a uno en particular, vas a tener primero la declaracion, y luego le vas a asignar ese en particular...

Hagamos un ejemplo rudimentario:

public class LoQueSea
{
    Estudiante variable;
    ...
    List<Estudiante> UnaListaDeEstudiantes;

    public void ObtenerEstudianteXDeLaLista(int IdABuscar)
    {
        foreach(Estudiante e in UnaListaDeEstudiantes)
        {
            if (e.id == IdABuscar)
            {
                Estudiante = e;
            }
        }
    }
}

El codigo anterior es solo un ejemplo de uso

De esa forma, tenemos un objeto definido a nivel de clase, que se va a llenar posteriormente..

Ah, y hasta que no este instanciada a un valor, no podes hacer nada, porque todo te va a dar error null reference exception

gbianchi
  • 19,675
  • 11
  • 38
  • 58