Anuncios

Bienvenidos sean a este post, hoy veremos dos elementos de nuestros programas como son las clases y objetos, uno es derivado del otro y el otro esta siempre, comencemos el capitulo.

Anuncios
Anuncios

Primero hablemos sobre las clases, esta son la base de nuestro programas porque como vimos hasta ahora siempre tendremos que tener una clase llamada Program para que la consola pueda interpretarlas pero a su vez nosotros podemos generar nuestras propias clases pero que es una clase?

Una clase equivale a un contenedor de propiedades y metodos, las propiedades son las variables y los metodos las funciones.

El Tinchicus

Las propiedades de la clase nos proporcionara la posibilidad de guardar estados de la clase y los metodos nos dara las posibilidades de tener acciones para nuestra clase, para hacer una comparacion podriamos decir que una persona es una clase ya que posee propiedades las cuales pueden ser para saber si es alto, bajo, rubio, etc, y este tambien posee metodos como pueden ser caminar, hablar, comer, etc.

Anuncios

Como pueden darse cuenta cualquier cosa en este mundo puede ser una clase, las clases son abstractas y no pueden trabajarse sobre ellas directamente o como se dice en programacion no pueden instanciarse pero para poder utilizar sus capacidades y lo hacemos por medio de los objetos.

Nota: Algunas personas comparan a las clases con moldes de donde sacan los objetos.
Anuncios

Los objetos son una derivacion o instancia de una clase, es decir que para crear un objeto debe hacerse desde una clase, al momento de crear el objeto heredara todos las propiedades y metodos de la clase lo cual nos permitira trabajar con todas las propiedades y metodos de la clase, la ventaja de trabajar de esta forma es que nosotros con una sola clase podriamos generar los objetos que necesitemos para poder trabajar con nuestra aplicacion, lo bueno de trabajar con objetos es que modificando solamente la clase hace que todos sus objetos reciban al mismo tiempo las modificaciones, ya sea corrigiendo un metodo o propiedad o agregando un nuevo elemento a la clase.

Anuncios

Nosotros podemos generar nuevas clases en las clases que poseemos simplemente haciendo:

class Clase
{
... instrucciones ...
}
Anuncios

Pero una buena y recomendable practica es crear las clases en distintos archivos, para ello crearemos un nuevo ejemplo, primero haremos un archivo llamado Perro.cs, el cual sera nuestra clase para crear los objetos:

Perro.cs

using System;

class Perro
{
    public string Ladrar()
    {
        return "Guau!!!";
    }
}
Anuncios

En esta clase solamente agregamos un metodo que sera Ladrar, el cual es de tipo string y devuelve el literal “Guau!!!”, para nuestro siguiente paso crearemos una nueva clase que llamaremos Animal.cs con el siguiente codigo:

Animal.cs

using System;

class Program
{
    static int Main()
    {
        Perro fido = new Perro();
        Console.WriteLine(fido.Ladrar());
        return 0;
    }
}
Anuncios

En este caso dentro del Main crearemos un objeto derivado de la clase Perro al cual llamaremos fido, por medio de new crearemos el objeto, de esto hablaremos en el proximo post, luego por medio de WriteLine le decimos que muestre el resultado de la accion o metodo Ladrar de fido, con esto finalizando nuestro programa, pero para compilarlo debemos hacerlo de manera especial:

C:\Users\tinchicus\Documents\Visual Studio 2019>csc Animal.cs Perro.cs
Anuncios

En este caso debemos compilar todas las clases de nuestro programa juntas, como son dos no hay problema y en este caso tomara como referencia a la que contenga el Main para generar el punto exe, pero si tenemos mucha mas clases? Para esos casos debemos hacer asi:

C:\Users\tinchicus\Documents\Visual Studio 2019\A>csc /out:Animal.exe *.cs
Anuncios

En este caso podemos usar un parametro llamado /out para indicar cual va a ser nombre de nuestro .exe y despues usamos *,cs para que tome todas las clases del directorio y las compile juntas, veamos su salida:

C:\Users\tinchicus\Documents\Visual Studio 2019\A>csc /out:Animal.exe *.cs
Microsoft (R) Visual C# Compiler version 4.8.3761.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.

This compiler is provided as part of the Microsoft (R) .NET Framework, but only
supports language versions up to C# 5, which is no longer the latest version. Fo
r compilers that support newer versions of the C# programming language, see http
://go.microsoft.com/fwlink/?LinkID=533240


C:\Users\tinchicus\Documents\Visual Studio 2019\A>Animal.exe
Guau!!!

C:\Users\tinchicus\Documents\Visual Studio 2019\A>
Anuncios

Como pueden observar se compilo de manera perfecta y nuestro perro ladro perfectamente, si nosotros hicieramos otros perros ninguno se veria afectado por el otro, modifiquemos al Main de Animal.cs de la siguiente manera:

    static int Main()
    {
    	Perro fido = new Perro();
    	Perro arturo = new Perro();
    	Perro lola = new Perro();
    	Console.WriteLine("Fido dice " + fido.Ladrar());
    	Console.WriteLine("Arturo dice " + arturo.Ladrar());
    	Console.WriteLine("Lola dice " + lola.Ladrar());
        return 0;
    }
Anuncios

En este caso creamos tres perros y a los tres los hicimos ladrar, veamos que sucede si compilamos nuevamente y lo ejecutamos:

C:\Users\tinchicus\Documents\Visual Studio 2019\A>Animal.exe
Fido dice Guau!!!
Arturo dice Guau!!!
Lola dice Guau!!!

C:\Users\tinchicus\Documents\Visual Studio 2019\A>
Anuncios

En este caso tenemos a los tres perros, cada uno siendo su propio objeto donde podriamos trabajarlos de forma independiente si quisieramos pero todos nacidos de la misma clase.

Anuncios

En resumen, hoy hemos visto las clases, que son, para que se usan, como se pueden usar, como se componen, y como accedemos a ellas, por otro lado vimos objetos, que son, como se crean, para que se usan y un par de ejemplos practicos para su uso, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00