viernes, 29 de julio de 2011

C# – Clases, Parámetros [Básico]


En el anterior tutorial vimos la base de las clases, e hicimos un pequeñisimo ejemplo, en este tutorial ampliaremos un poco mas los usos de las clases.
En la clase Perro del anterior tutorial nos quedo esto.
class Perro
{
public Perro() // Constructor
{
Console.WriteLine("Has iniciado la clase Perro");
}
}
Vamos a ampliar la información de nuestra clase Perro, le agregaremos la siguientes variables.
string nombre;
int edad;
string raza;
bool pedigree;

Ahora nosotros tenemos que llenar esa información, cuando nosotros creamos e iniciamos una clase este nos puede pedir que nosotros le ingresemos algún valor. Para eso nosotros pedimos pasar Parámetros en el constructor.
public Perro(string Nombre, int Edad, string Raza, bool Pedigree) // Constructor
{
}
Ahora si van a Program.cs y borran el paréntesis “(” y vuelve a hacer uno verán esto.
Ahora al momento de construir nuestra clase, este nos va a pedir que le pasemos esos parámetros. Entonces en la clase Program.cs no quedaría algo así.
class Program
{
static void Main(string[] args)
{
Perro galgo;
galgo = new Perro("Pepe", 4, "Galgo", true);
}
}
Una ves que que se pasan estos parámetros, en la clase Perro, nosotros podemos utilizar como queramos esos valores, pero OJO, por que esos valores solo tiene uso dentro del constructor, si nosotros creamos alguna función en la clase, no podremos acceder a ellas.
public Perro(string Nombre, int Edad, string Raza, bool Pedigree) // Constructor
{
////////////////////////////////////
////////////////////////////////////
////////////////////////////////////
}
El área en donde podemos trabajar con los parámetros es dentro de las barras.

Bien, ahora que ya pasamos los parámetros, debemos guardarlos en las variables para poder utilizarlos mas adelante.
public Perro(string Nombre, int Edad, string Raza, bool Pedigree) // Constructor
{
nombre = Nombre;
edad = Edad;
raza = Raza;
pedigree = Pedigree;
}
Ahora, si nosotros quisiéramos poner un Console.WriteLine con la información ingresada deberíamos ponerlo así.
if (pedigree == true)
{
Console.WriteLine("El nombre del perro es " + nombre + ", tiene la edad "
+ edad + ", la raza es " + raza + "y posee Pedigree");            }
else
{
Console.WriteLine("El nombre del perro es " + nombre + ", tiene la edad "
+ edad + ", la raza es " + raza + "y no posee Pedigree");
}
Hay que aclarar que, dependiendo el valor que tenga la variable pedigree, el mensaje va a cambiar, como pueden ver, si pedigree es verdadero entonces decimos que si tiene, de lo contrario, decimos que no tiene.

Ahora vayamos para Program.cs, vamos a crear mas perros.

Perro galgo;
Perro pitbull;
Perro sanbernardo;
galgo = new Perro("Pepe", 4, "Galgo", true);
pitbull = new Perro("Polo", 2, "Pitbull", false);
sanbernardo = new Perro("Rocko", 2, "San Bernardo", true);
La utilidad de las clases la vemos en este ejemplo, con solo programar una cosa en la clase, podemos replicarlo en nuestra aplicación.

Si hicimos todo bien, tendremos una ventana como esta.
Aca termina el tutorial, en el próximo veremos los modificadores de acceso.

Codigo Completo
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MiAplicacion_Tutorial_11vo
{
class Program
{
static void Main(string[] args)
{
Perro galgo;
Perro pitbull;
Perro sanbernardo;
 
galgo = new Perro("Pepe", 4, "Galgo", true);
pitbull = new Perro("Polo", 2, "Pitbull", false);
sanbernardo = new Perro("Rocko", 2, "San Bernardo", true);
}
}
}

Perro.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MiAplicacion_Tutorial_11vo
{
class Perro
{
string nombre;
int edad;
string raza;
bool pedigree;

public Perro(string Nombre, int Edad, string Raza, bool Pedigree) // Constructor
{
nombre = Nombre;
edad = Edad;
raza = Raza;
pedigree = Pedigree;

if (pedigree == true)
{
Console.WriteLine("El nombre del perro es " + nombre + ", tiene la edad "
+ edad + ", la raza es " + raza + "y posee Pedigree");
}
else
{
Console.WriteLine("El nombre del perro es " + nombre + ", tiene la edad "
+ edad + ", la raza es " + raza + "y no posee Pedigree");
}
}
}
}