Constructores

Constructores y la palabra clave new

Un constructor es un método especial cuyo nombre es siempre el mismo que el nombre de su clase. La finalidad de un constructor es inicializar los atributos de un objeto creado recientemente. Sino se escribe un constructor para una clase, el compilador escribe uno el mismo, se llama constructor por default o defecto. Por ejemplo, sino se escribiera un constructor, esto es lo que el compilador de C# entendería que tiene que hacer:

class circulo 
{
	private double radio;
	public c1()
	{
		radio=0.0;
	}
	double area()
	{
		return 3.1416*radio*radio;
	}
}

El constructor generado por el compilador es public y no tiene valor de retorno (no regresa ningún valor), no toma argumentos, cualquier atributo dentro de esa clase lo incializa a cero, cualquier atributo booleano lo inicializa en false y cualquier atributo de referencia lo inicializa en null.

Para poder llamar cualquier método o atributo declarado dentro de una clase se debe utilizar la siguiente sintáxis, la cual debe incluir el operador punto(.):

c.area();

/*aquí se tiene un objeto c de la clase circulo, es decir, 
tiene los atributos y métodos declarados dentro de esa clase 
y trata de acceder al método definido de área.*/


Nota: El operador punto (.) se utiliza para acceder a las propiedades y métodos de una clase que son los miembros de ésta.

Sobrecarga de Constructores

Tomando el ejemplo anterior se puede declarar una variable de tipo circulo asignarla a un objeto creado recientemente y después hacer el llamado de su método area, es decir:

circulo c= new circulo();
Console.WriteLine(c.area());

Pero como antes, el constructor utilizado es el del compilador y entonces el valor que aparecerá en la pantalla es cero, ya que el radio es inicializado en cero y cualquier cantidad multiplicada por cero da cero, para solucionar este problema se debe escribir otro constructor el cual reciba un valor que se escriba por medio del teclado (por parte del usuario) o que se le asigne un valor. Por ejemplo:

class circulo
{
	private double radio;
	public circulo()
		radio=15;
	public circulo(double incialradio)
		radio=inicialradio;
	public double area()
	{
		return 3.1416*radio*radio;
	}
}
circulo c= new circulo();
Console.WriteLine(c.area();

/*en la pantalla aparecerá el valor del área calculado, 
usando el valor de 15 como radio, ya que no se le está 
pasando ningún parámetro cuando se hace la llamada del 
método de área.*/

Si se declaran dos constructores, a esto se le llama sobrecarga de constructores ya que tienen el mismo nombre pero se diferencian en que uno si recibe un parámetro y el otro no.

Como anteriormente cuando se hacía los programas en el lenguaje C se agregaban bibliotecas para que se pudieran utilizar los métodos definidos en esa biblioteca, por ejemplo:

Para el uso de scanf y printf se tenía que escribir en el programa principal la librería #include <stdio.h>, en el ámbito de C# para usar la clase Console reside en el espacio de nombres System, al escribirlo se debe usar la directiva using, al principio del programa, por ejemplo:

using System;
static void Main(string[] args)
{
	System.Console.WriteLine("Hello World");
}