DE .NET, SQLSERVER Y MÁS, APRENDE CONMIGO!✔

Desarrollo de todo tipo de aplicaciones y Administración de Base de datos con Tecnología Microsoft


UNETE

Constructores en C#

0


Constructores

Los constructores son un tipo especial de métodos que poseen las clases y cuya finalidad es inicializar los campos de un objeto. Cada vez que se crea una nueva instancia de un objeto, el sistema le asigna la cantidad de espacio que necesite en el montículo ("heap") y acto seguido ejecuta el constructor de la clase para llevar a cabo la inicialización de todas los campos que lo requieran. A diferencia de otros métodos el constuctor no puede tener tipo de retorno ni tener otro nombre diferente del de la propia clase en que se define.

class Persona

{

  public Persona(... lista de parámetros ...)

  {

    ... código de inicialización ...

  }

}

Los constructores pueden sobrecargarse, de forma que podemos tener varios de ellos y hacer que antes de ejecutar el cuerpo de su método se ejecute otro utilizando this.

class Persona

{ 

  public string nombre;

 

  public Persona(string nombre) { this.nombre = nombre; }

  public Persona(): this("José Expósito") {}

}

 

Persona p1 = new Persona();

Persona p2 = new Persona("Antonio Pérez");

En caso de no definir de forma explícita un constructor, se creará uno de forma implícita sin parámetros que inicializará todas las variables a sus valores por defecto.

Las asignaciones de valores presentes en las propias declaraciones de las variables se ejecutarán antes que los constructores, y además, en el mismo orden en que aparezcan. Esto se puede comprobar ejecutando el siguiente ejemplo:

// inicializacion.cs

 

using System;

 

class Persona

{ 

  public string nombre = "José Expósito";

 

  public Persona(string nombre)

  {

    Console.WriteLine("antes del constructor nombre = {0}", this.nombre);

    this.nombre = nombre;

    Console.WriteLine("tras el constructor nombre = {0}", this.nombre);

  }

 

  public static void Main()

  {

    Persona p = new Persona("Pedro Castillo");

  }

}

Estudiemos ahora como afecta el uso de la palabra clave static a la inicialización de una clase. Si la aplicamos al constructor, al igual que ocurria con la variables, tiene el efecto de hacer que el código que ejecuta sea compartido por todas las instancias de una clase. Este tipo de constructores se ejecutan antes de la creación de cualquier instancia de la clase, y por supuesto, esto sucede una única vez. Cada clase puede poseer un único constructor de este tipo y no puede tener parámetros. En el caso de las variables estáticas, como sucedía con las no estáticas, estas se inicializan antes de la llamada al constructor estático. En resumen, el orden de inicialización es:

1.      variables estáticas

2.      constructores estáticos

3.      variables no estáticas

4.      constructores no estáticos

DEMOSTRACIÓN

Procederemos a crear una clase denominada Alumno, la misma tendrá dos métodos Imprimir y EsMayorEdad:


    Fijese que todo el código se generá el constructor Alumno, En el método Main codificaremos lo siguiente:


El resultado es el siguiente:





    




Tal vez te interesen estas entradas

No hay comentarios