CSharp: Programación Orientada a Objetos
Aprende los conceptos avanzados de Programación Orientada a Objetos en C# con ejemplos prácticos y actualizados para el año 2024.
Aprende CSharp GRATIS y certifícateLa programación orientada a objetos (POO) es un paradigma fundamental en el desarrollo de software moderno. En C#, este enfoque permite la creación de aplicaciones robustas y modulares. A continuación, exploraremos los conceptos clave de la POO en C# con ejemplos actualizados para 2024.
Clases y objetos
Las clases son la base de la POO. Una clase define un tipo de objeto, incluyendo sus propiedades y métodos. Los objetos son instancias de clases.
public class Persona
{
public string Nombre { get; set; }
public int Edad { get; set; }
public void Saludar()
{
Console.WriteLine($"Hola, mi nombre es {Nombre} y tengo {Edad} años.");
}
}
// Uso de la clase Persona
Persona persona = new Persona { Nombre = "Juan", Edad = 30 };
persona.Saludar();
Encapsulamiento
El encapsulamiento permite ocultar los detalles internos de una clase y exponer solo lo necesario. Esto se logra mediante modificadores de acceso como private
y public
.
public class CuentaBancaria
{
private decimal saldo;
public void Depositar(decimal monto)
{
if (monto > 0)
{
saldo += monto;
}
}
public decimal ObtenerSaldo()
{
return saldo;
}
}
// Uso de la clase CuentaBancaria
CuentaBancaria cuenta = new CuentaBancaria();
cuenta.Depositar(100.50m);
Console.WriteLine($"Saldo: {cuenta.ObtenerSaldo()}");
Herencia
La herencia permite crear una nueva clase a partir de una existente. La clase derivada hereda los miembros de la clase base.
public class Animal
{
public string Nombre { get; set; }
public void Comer()
{
Console.WriteLine($"{Nombre} está comiendo.");
}
}
public class Perro : Animal
{
public void Ladrar()
{
Console.WriteLine($"{Nombre} está ladrando.");
}
}
// Uso de la clase Perro
Perro perro = new Perro { Nombre = "Rex" };
perro.Comer();
perro.Ladrar();
Polimorfismo
El polimorfismo permite utilizar una misma interfaz para diferentes tipos de objetos. En C#, se puede implementar mediante la herencia y las interfaces.
public abstract class Figura
{
public abstract double CalcularArea();
}
public class Circulo : Figura
{
public double Radio { get; set; }
public override double CalcularArea()
{
return Math.PI * Radio * Radio;
}
}
public class Rectangulo : Figura
{
public double Ancho { get; set; }
public double Alto { get; set; }
public override double CalcularArea()
{
return Ancho * Alto;
}
}
// Uso del polimorfismo
Figura circulo = new Circulo { Radio = 5 };
Figura rectangulo = new Rectangulo { Ancho = 4, Alto = 6 };
Console.WriteLine($"Área del círculo: {circulo.CalcularArea()}");
Console.WriteLine($"Área del rectángulo: {rectangulo.CalcularArea()}");
Interfaces
Las interfaces definen un contrato que las clases pueden implementar. A diferencia de las clases, las interfaces no contienen implementación, solo las firmas de los métodos.
public interface IOperaciones
{
void Sumar(int a, int b);
void Restar(int a, int b);
}
public class Calculadora : IOperaciones
{
public void Sumar(int a, int b)
{
Console.WriteLine($"Suma: {a + b}");
}
public void Restar(int a, int b)
{
Console.WriteLine($"Resta: {a - b}");
}
}
// Uso de la interfaz IOperaciones
IOperaciones calculadora = new Calculadora();
calculadora.Sumar(10, 5);
calculadora.Restar(10, 5);
Lecciones de este módulo de CSharp
Lecciones de programación del módulo Programación Orientada a Objetos del curso de CSharp.
Ejercicios de programación en este módulo de CSharp
Evalúa tus conocimientos en Programación Orientada a Objetos con ejercicios de programación Programación Orientada a Objetos de tipo Test, Puzzle, Código y Proyecto con VSCode.