Clases y Objetos en la programación [C#, Vala]

Hola, taringueros. Gracias por pasar.

El viernes fui a la Biblioteca Central de la UNAM, supuestamente a buscar algo de información sobre la arquitectura romana; pero ¿a quién engaño? Me fui derechito a la sección de Matemáticas y encontré unos libros excelentes sobre programación, sin embargo, ninguno de linux en serio (C, Python, Ruby o algo parecido) y sólamente encontré sobre programación Windows, y entre esos libros encontré este:

http://www.amazon.com/XNA-Game-Studio-Express-Developing/dp/1598633686

El libro está en inglés, y es una cosa increible, explica no sólo cómo crear juegos en Windows (y antes de que me empiecen a decir si programo en Windows, dejenme mostrarles algo: http://www.nature.com/naturejobs/science/jobs?q=Programmer, miren la cantidad de trabajos que EXIGEN conocimientos de programación sobre Windows, especialmente en la estribo .NET, no me gusta, pero si quiero dedicarme a subsistir programador, es algo necesario, mi corazón es linuxero, pero mi trabajo puede subsistir en windows, es una pena, y en serio buscaré trabajo como programador Linux, pero si no lo consigo, necesitaré un esbozo de refuerzo )

En fin, el libro explica qué son los objetos en el capítulo 2, y ahora que lo sé, quiero compartirlo con la comunidad. porque nunca he visto algo parecido en la Web.

En primer lugar, en C# y en Vala, los programas están hechos de una o más clases. Una clase es la definición de un objeto. Pero, ¿qué es un objeto? La contestación corta es «todo» (Todo en C# y Vala son objetos).
Los objetos son representaciones en la memoria de cosas de la savia real. Las computadoras procesan los datos como ceros y unos. Los humanos pensamos en términos de conceptos más abstractos. ¿Cómo describirías un perro en una computadora? Últimadamente, tu descripción deberá subsistir una emisión de ceros y unos, porque ese es el lenguaje que la computadora comprende. Es el trabajo del compilador de C# y Vala convertir un lenguaje legible por los humanos en una descripción legible por la máquina.
Las clases son la forma de especificar objetos en el compilador C# y Vala. Una forma muy, muy simplificada para un perro puede verse así:

public class Dog
{
    public int NumberOfLegs = 4;
    public void Speak()
    {
        System.Console.Writeline(«Woof»);
    }
}

Pero a mí se me ocurre un programa un poco más «Taringuero»:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Aplicación_de_muestra
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Console.WriteLine(«Nombre del taringuero: «);
            string nombre = System.Console.ReadLine();
            var taringuero = new Taringuero();
            taringuero.ID = nombre;
            System.Console.WriteLine(«¿Cuántos puntos tiene » + taringuero.ID + «?»);
            string pts = System.Console.ReadLine();
            taringuero.Puntos = int.Parse(pts);

            System.Console.WriteLine(«¿Crees que » + taringuero.ID + » se merece 10 puntos? [s/n]»);
            string respuesta = System.Console.ReadLine();

            if(respuesta == «s») 
            {
                taringuero.Agregar10();
                System.Console.WriteLine(«Ya le dimos 10, ahora tiene » + taringuero.Puntos);
            } 
            else 
            {
                System.Console.WriteLine(«Entonces no le damos puntos, tiene » + taringuero.Puntos);
            }

            nombre = System.Console.ReadLine(); 
            // Esto es para evitar que el programa se cierre
            // Al escribir y/o dar enter se cerrará
        }
    }

    class Taringuero
    {
        public string ID = «»;
        int puntos;
        public int Puntos
        {
            get
            {
                return puntos;
            }
            set
            {
                puntos = value;
            }
        }
        

        public void Agregar10()
        {
            puntos = puntos + 10;
        }
    }
}

Y al ejecutar el programa tenemos:

Y ahí tienen, no me voy a poner a explicarles todo el programa, tal como lo dije en la descripción, no soy un programador entendido en windows, con lo que les puse como descripción será asaz para un programador astuto que lea esto, si no entienden, lean estos recursos

Este lo recomiendo mucho, tiene todo que advertir con lo que vimos en el post:
http://msdn.microsoft.com/en-us/library/aa287786(v=VS.71).aspx

Si no sabes C# (TODO lo que aprendas de C# lo puedes aplicar en Vala, y viceversa, por eso elegí ese lenguaje):
http://msdn.microsoft.com/en-us/library/aa287558(v=VS.71).aspx

Y si no tienen visual Studio, descarguenlo, es gratis
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-csharp-express
Obviamente seleccionan su descarga en Español, en la parte de abajo

Y eso sería todo por hoy, espero que les haya servido e interesado lo que dije, si tienen alguna duda, comentario o lo que sea, por ayuda comenten.
Muchas gracias por su atencion. Hasta la próxima

Fuentes de Información

El contenido del post es de mi autoría, y/o, es un recopilación de distintas fuentes.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *