Fundamentos de la POO con C# [3/10]: Objetos y Clases
Conceptos escenciales, pero a la vez importantes que debes dominar, no hay otra opción 🙌

Hey devs, ahora vamos a aprender sobre un concepto clave en todo esto de la Programación orientada a objetos.

Contenido de la Serie de artículos

Estos son todos los temas de la serie:

  1. 1. La Programacion orientada a objetos (POO) y el diseño orientado a objetos (DOO)
  2. 2. Los requerimientos: funcionales y no funcionales
  3. 3. Objetos y clases
  4. 4. Tipos de datos en C#: Por valor y por referencia
  5. 5. Constructores
  6. 6. Signaturas e Interfaces
  7. 7. Clases especiales: estáticas y abstractas
  8. 8. Modificadores de acceso
  9. 9. Los 4 Pilares de la POO: Herencia, abstracción, encapsulamiento y polimorfismo
  10. 10. Los Principios SOLID
El molde viene a ser la clase y el keke el objeto. Foto de Caroline Hernandez en Unsplash

Qué es un Objeto

En términos técnicos: Es una instancia de una clase.

En términos prácticos viene a ser una variable creada a partir de una clase, la cual permite utilizar todo lo que hemos definido en la clase, como por ejemplo sus atributos o métodos.

Ejemplos:

  • El alumno Pedro Solís creado a partir de la clase Alumnos, otro objeto de la misma clase sería la alumna María Sánchez.
  • El auto de placa XYZ-321 creado a partir de la clase Automóvil, otro objeto de la misma clase sería el auto con placa TRR-543.
  • El medio de transporte Avión creado a partir de la clase MediosDeTransporte, otro objeto de la misma clase sería el medio de transporte Camión.

En C# se crean objetos con la palabra reservada new

Qué es una Clase

Es una plantilla a partir de la cual se crean los objetos.

En términos prácticos es una porción de código que nos permite crear objetos de tipos personalizados según hayamos definido en la clase.

Una clase está conformada por sus miembros, los cuales son:

  • Campos
  • Propiedades
  • Métodos

Vamos a ver más detalle de esto a continuación.

Miembros de una clase

Como ya hemos mencionado son 3:

➡ Campos

Son los datos que componen toda la información que contiene una clase

➡ Propiedades

Son métodos especiales dedicados solamente a la lectura (también llamada get) o escritura (también llamada set) de los campos de la clase.

En palabras sencillas podría decirse que una propiedad es la puerta de entrada a los campos de una clase.

Al conjunto de campos y propiedades se les conoce como Atributos

➡ Métodos

Son las funcionalidades o acciones que una clase puede realizar.

Existen convenciones entre desarrolladores para nombrar los miembros de una clase, por ejemplo: Las propiedades deben empezar con mayúsculas, los métodos también.

Todo miembro de una clase debe implementar el PascalCase, en otras palabras si el miembro tiene un nombre con varias palabras, todas deben estar unidas y cada palabra debe empezar con mayúscula.

Veamos una clase real en C#

public class Cliente
{
    /* CAMPOS */
    private int id; //son privadas ya que los campos son expuestos a través de su propiedad y esa sí es pública
    private string nombre;       

    /* PROPIEDADES */
    public int Id
    {
        get { return id; }
        set { id = value; }
    }
    public string Nombre
    {
        get { return nombre; }
        set { nombre = value; }
    }
    public decimal Credito { get; set; } //Propiedad auto-implementada, campo y método en una sola línea

    /* MÉTODOS */
    public void Comprar(decimal monto)
    {
        this.Credito -= monto;
    }

    public void Vender(decimal monto)
    {
        this.Credito += monto;
    }
}

Ahora cómo usamos la clase y sus miembros?

Veamos: Creo la clase Operaciones desde donde ejecutaré operaciones hacia un objeto de la clase Cliente:

public static class Operaciones
{
    public static void RealizarTransaccion()
    {
        var cliente = new Cliente();
        cliente.Nombre = "Gerson";
        cliente.Vender(100);
        Console.WriteLine($"El cliente {cliente.Nombre} tiene {cliente.Credito} de crédito.");
        cliente.Comprar(30);
        Console.WriteLine($"El cliente {cliente.Nombre} tiene {cliente.Credito} de crédito.");
    }
}

En un programa de consola podría probar esto:

Console.WriteLine("Objetos y clases");
Operaciones.RealizarTransaccion();

Estoy utilizando .NET 6 plataforma en la cual los programas de consola ya no tienen el método Main, pero si tu usas una versión anterior esas 2 líneas las tendrías que ubicar dentro del método Main.

El programa sencillo tiene esta apariencia

Y el resultado es el siguiente:

Por cuestiones prácticas he creado las dos clases en el mismo archivo, lo normal es que cada clase tenga su propio archivo de extensión .cs

Como podemos notar la clase nos permitió crear un objeto y definirle información, además mediante sus métodos pudimos hacerle operaciones. Genial eso es todo crack! Practícalo y repásalo. La pelotita está en tu cancha. ⚽

En conclusión...

Podemos afirmar que una Clase es como un plano de un avión donde se encuentra definido qué medidas tendrá, que combustible utilizará y qué capacidad de carga máxima va a tener.

Foto de RF._.studio: https://www.pexels.com/es-es/foto/desde-arriba-del-cientifico-etnico-explorando-detalles-de-aviones-con-lupa-3825540/

Ya cada objeto avión definirá si se pintará de rojo, azul o amarillo; qué placa de rodaje tendrá, cuantos kilogramos tendrá cargados y si tendrá su tanque de combustible lleno o vacío.

Foto de Jeremy Bezanger en Unsplash

Si te ha gustado esta entrada ya sabes que hacer 🔥

Deja una respuesta

Tu dirección de correo electrónico no será publicada.