certmundo.
es‑mx

6 min de lectura

¿Qué son las clases y los objetos en C#?

Una clase es una plantilla que describe las características y acciones de un tipo de dato que tú defines.

En C#, las clases son la base de la programación orientada a objetos (POO). Con ellas puedes modelar cosas del mundo real: un producto, un cliente, un empleado.

¿Qué es una clase?

Una clase agrupa datos y comportamientos relacionados en una sola unidad. Los datos se llaman propiedades. Los comportamientos se llaman métodos.

Piensa en una clase como el molde de una galleta. El molde no es la galleta; es la forma para crearla.

¿Qué es un objeto?

Un objeto es una instancia concreta de una clase. Si la clase es el molde, el objeto es la galleta ya hecha.

Puedes crear muchos objetos distintos a partir de la misma clase. Cada objeto tiene sus propios valores en sus propiedades.

Estructura de una clase en C#

La sintaxis básica de una clase sigue este patrón:

class NombreDeLaClase
{
    // Propiedades
    public tipo NombrePropiedad { get; set; }

    // Métodos
    public tipoRetorno NombreMetodo()
    {
        // lógica
    }
}

La palabra clave class declara la clase. La palabra clave public indica que la propiedad o método es accesible desde fuera de la clase. { get; set; } es la forma corta de definir una propiedad que se puede leer y escribir.

Ejemplo 1 — Clase Producto para inventario

Imagina que trabajas en una empresa como Liverpool y necesitas manejar un inventario de productos.

class Producto
{
    public string Nombre { get; set; }
    public double Precio { get; set; }
    public int Cantidad { get; set; }
}

Esta clase tiene tres propiedades: el nombre del producto, su precio y cuántas unidades hay en existencia.

Ahora crea un objeto a partir de esa clase:

Producto p1 = new Producto();
p1.Nombre = "Cafetera";
p1.Precio = 1200;
p1.Cantidad = 5;

Console.WriteLine(p1.Nombre);   // Cafetera
Console.WriteLine(p1.Precio);   // 1200
Console.WriteLine(p1.Cantidad); // 5

La palabra clave new crea el objeto en memoria. Después puedes asignar valores a sus propiedades usando el punto (.).

Ejemplo 2 — Agregar un método a la clase

Ahora agrega un método que calcule el valor total del producto en inventario (precio × cantidad).

class Producto
{
    public string Nombre { get; set; }
    public double Precio { get; set; }
    public int Cantidad { get; set; }

    public double CalcularValorTotal()
    {
        return Precio * Cantidad;
    }
}

Usa el método desde el objeto:

Producto p1 = new Producto();
p1.Nombre = "Cafetera";
p1.Precio = 1200;
p1.Cantidad = 5;

double total = p1.CalcularValorTotal();
Console.WriteLine("Valor total en inventario: $" + total);
// Resultado: Valor total en inventario: $6,000

El método accede directamente a Precio y Cantidad del mismo objeto. No necesitas pasarlos como parámetros.

Ejemplo 3 — Múltiples objetos de la misma clase

Aquí está el poder real de las clases: crear varios objetos distintos con el mismo molde.

Supón que el sistema de inventario de Bimbo maneja tres productos:

Producto pan = new Producto();
pan.Nombre = "Pan Blanco";
pan.Precio = 35;
pan.Cantidad = 200;

Producto dona = new Producto();
dona.Nombre = "Donas";
dona.Precio = 28;
dona.Cantidad = 150;

Producto pastel = new Producto();
pastel.Nombre = "Pastel Choco";
pastel.Precio = 120;
pastel.Cantidad = 80;

Console.WriteLine(pan.Nombre + " — $" + pan.CalcularValorTotal());
Console.WriteLine(dona.Nombre + " — $" + dona.CalcularValorTotal());
Console.WriteLine(pastel.Nombre + " — $" + pastel.CalcularValorTotal());

Salida del programa:

Pan Blanco — $7,000
Donas — $4,200
Pastel Choco — $9,600

Cada objeto tiene sus propios datos, pero todos comparten la misma estructura y el mismo método.

Inicializar objetos con valores desde la declaración

C# permite asignar valores al crear el objeto usando llaves {}. Esto se llama inicializador de objeto.

Producto p2 = new Producto()
{
    Nombre = "Refresco",
    Precio = 18,
    Cantidad = 300
};

Console.WriteLine(p2.Nombre + ": $" + p2.CalcularValorTotal());
// Refresco: $5,400

Esta forma es más limpia y fácil de leer cuando tienes varias propiedades.

Método para imprimir la información del producto

Es buena práctica agregar un método que muestre los datos del objeto. Esto evita repetir el código de Console.WriteLine en cada parte del programa.

class Producto
{
    public string Nombre { get; set; }
    public double Precio { get; set; }
    public int Cantidad { get; set; }

    public double CalcularValorTotal()
    {
        return Precio * Cantidad;
    }

    public void MostrarInfo()
    {
        Console.WriteLine("Producto: " + Nombre);
        Console.WriteLine("Precio unitario: $" + Precio);
        Console.WriteLine("Cantidad: " + Cantidad);
        Console.WriteLine("Valor total: $" + CalcularValorTotal());
        Console.WriteLine("---");
    }
}

Ahora llama al método desde cualquier objeto:

Producto leche = new Producto()
{
    Nombre = "Leche Lala",
    Precio = 22,
    Cantidad = 500
};

leche.MostrarInfo();

Salida:

Producto: Leche Lala
Precio unitario: $22
Cantidad: $500
Valor total: $11,000
---

Errores comunes

1. Olvidar la palabra new al crear el objeto.

// Incorrecto:
Producto p;
p.Nombre = "Zapato"; // Error: el objeto no existe en memoria

// Correcto:
Producto p = new Producto();
p.Nombre = "Zapato";

Sin new, el objeto no se crea en memoria y el programa falla al compilar.

2. Confundir la clase con el objeto.

La clase Producto es solo el molde. No tiene datos. El objeto p1, leche o dona sí tiene datos. Nunca escribas Producto.Nombre = "algo" directamente sobre la clase.

3. Acceder a propiedades sin inicializar.

Producto p = new Producto();
Console.WriteLine(p.Nombre.Length); // Error: Nombre es null por defecto

Siempre asigna valores a las propiedades antes de usarlas. Un string no inicializado en C# es null, y operar sobre null lanza una excepción.

4. Nombrar la clase en minúsculas o con verbo.

Las clases en C# usan PascalCase y nombres de sustantivos: Producto, Cliente, Empleado. Evita nombres como calcular, producto1 o miclase.

Tabla de referencia rápida

Concepto Descripción Ejemplo
class Declara la plantilla class Producto { }
Propiedad Dato que describe el objeto public string Nombre { get; set; }
Método Acción que realiza el objeto public void MostrarInfo()
new Crea un objeto en memoria new Producto()
. (punto) Accede a propiedad o método p1.Nombre, p1.CalcularValorTotal()
Inicializador Asigna valores al crear new Producto() { Nombre = "X" }

Lo que aprendiste en este curso

Llegaste al final de C# Básico: Aprende a Programar desde Cero. Aquí tienes un resumen de todo el camino que recorriste:

  • Variables y tipos de datos — aprendiste a guardar información en memoria.
  • Operadores y expresiones — realizaste cálculos y comparaciones.
  • Condicionales — tu programa tomó decisiones con if y else.
  • Ciclos — repetiste instrucciones con for y while.
  • Arreglos — guardaste múltiples valores en una sola estructura.
  • Métodos — organizaste tu código en bloques reutilizables.
  • Clases y objetos — modelaste datos del mundo real con POO.

Próximos pasos concretos

Para seguir avanzando como desarrollador en México, estos son los pasos más importantes:

  1. Practica con proyectos pequeños. Construye un programa de inventario con varios productos, o una calculadora de nómina para empleados con salarios entre $10,000 y $30,000 al mes.
  2. Aprende sobre listas y colecciones. La clase List<T> de C# es más flexible que los arreglos y es fundamental en proyectos reales.
  3. Explora herencia y polimorfismo. Son los conceptos siguientes de POO: te permiten crear clases especializadas a partir de una clase base, como ProductoDigital a partir de Producto.
  4. Instala Visual Studio Community (versión gratuita) para escribir código con herramientas profesionales y autocompletado.
  5. Busca convocatorias junior en México. Empresas como Mercado Libre, FEMSA y startups de CDMX contratan desarrolladores junior con conocimientos básicos de C# o Java.

Puntos clave

  • Una clase es una plantilla que agrupa propiedades (datos) y métodos (acciones). Un objeto es una instancia concreta de esa clase creada con la palabra clave `new`.
  • Accede a las propiedades y métodos de un objeto usando el operador punto (`.`), por ejemplo: `producto.Nombre` o `producto.CalcularValorTotal()`.
  • Puedes crear múltiples objetos distintos a partir de la misma clase. Cada objeto tiene sus propios valores, pero todos comparten la misma estructura y métodos.
  • Los inicializadores de objeto `new Producto() { Nombre = "X" }` hacen el código más limpio cuando asignas varios valores al mismo tiempo.
  • Con variables, condicionales, ciclos, arreglos, métodos y clases ya tienes las bases para construir programas reales en C#. El siguiente paso es practicar con proyectos propios y explorar colecciones y herencia.

Comparte esta lección:

¿Qué son las clases y los objetos en C#? | C# Básico: Aprende a Programar desde Cero | Certmundo