Programacion En C# Constructores y Destructores

Páginas: 5 (1001 palabras) Publicado: 20 de agosto de 2011
Constructores y Destructores
Antes de acceder a los métodos o propiedades de una clase, primero se ejecuta el constructor de la clase el cual contiene código de inicialización, si no se escribe un constructor para la clase el compilador provee automáticamente un constructor default.
En el runtime .NET el programador no puede controlar la destrucción de objetos.
Un constructor puede invocar unconstructor del tipo base utilizando la sintaxis base.
Los constructores son invocados automáticamente sólo cuando una instancia de un objeto es creada con new.

class NombreClase
{
public NombreClase() : base(){ } //Constructor que provee el compilador
}
Las características de un constructor son:
• Siempre tiene el mismo nombre que la clase.
• No tiene declarado un tipo deregreso.
• Por lo general tienen el modificador público.
• Son utilizados para inicializar variables.
• Si la clase sólo contiene miembros estáticos, es posible crear un constructor private, lo cual significa que no podrá ser accesible fuera de la clase o que sólo se puede acceder desde la clase.
• No puede ser invocado desde la definición de la clase.
• Un objeto no puedeser instanciado desde la definición de la clase.
Al codificar no se está limitado a los parámetros del constructor, es posible enviar argumentos iníciales para inicializar ciertos miembros.

using System;

class Vehiculo{
//Propiedades:
private int iRueda;
private int iPuerta;
private int iVentana;
private int iHelice;
private int iMotor;
private int iAsiento;
privatestring sTipo;//Aereo, anfibio, terrestre, espacial

//Constructor:
public Vehiculo(int Rueda, int Puerta, int Ventana, int Helice, _
int Motor, int Asiento, string Tipo){
iRueda = Rueda;
iPuerta = Puerta;
iVentana = Ventana;
iHelice = Helice;
iMotor = Motor;
iAsiento = Asiento;
sTipo = Tipo;
}

//Lectura/escritura de propiedades:
public intRuedas{
get{return iRueda;}
set{iRueda = value;}
}

public int Puertas{
get{return iPuerta;}
set{iPuerta = value;}
}

public int Ventanas{
get{return iVentana;}
set{iVentana = value;}
}

public int Helices{
get{return iHelice;}
set{iHelice = value;}
}

public int Motores{
get{return iMotor;}
set{iMotor = value;}
}

publicint Asientos{
get{return iAsiento;}
set{iAsiento = value;}
}

public string Tipo{
get{return sTipo;}
set{sTipo = value;}
}

}

//Aplicación:
class AplicConstructor
{
public static void Main()
{
Vehiculo MiAvion = new Vehiculo(2,1,100,0,3,200,"Aereo");
Console.WriteLine("Ruedas : " + MiAvion.Ruedas);
Console.WriteLine("Puertas : " +MiAvion.Puertas);
Console.WriteLine("Ventanas : " + MiAvion.Ventanas);
Console.WriteLine("Helices : " + MiAvion.Helices);
Console.WriteLine("Motores : " + MiAvion.Motores);
Console.WriteLine("Asientos : " + MiAvion.Asientos);
Console.WriteLine("Tipo : " + MiAvion.Tipo);
}
}
En un sentido estricto en C# no se tienen destructores, pero el termino destructor se refiere a laliberación de recursos.
Es posible escribir un método que libere recursos después de ser utilizados, pero porque escribir un método para liberar recursos si existe un destructor:
public ~NombreClase(){
//liberar recursos
}
La razón por la cual se debería escribir un método adicional es por el recolector de basura, el cual no es invocado inmediatamente después que las variables quedan fuera deámbito, sólo se invoca el recolector de basura en ciertos intervalos o condiciones de memoria.
Lo que podría suceder es que los recursos se agoten antes de ser utilizados, entonces es buena idea proveer un método explícito Release, el cual también puede ser invocado por el destructor:
public void Release(){
//Liberar recursos
}
public ~NombreClase(){
Release();
}
La invocación...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programacion Orientada a Objetos c++ Constructores
  • Constructor y destructor
  • Constructores Y Destructores En C#
  • Constructor y destructor
  • Destructores en c# y c++
  • Constructores c++
  • programacion C#
  • programacion c#

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS