Desarrollo - POO - Curso POO
Programación orientada a objetos en C#
La programación orientada a objetos (POO) es un paradigma de programación basado en la idea de organizar el código en unidades llamadas "objetos" que representan entidades del mundo real. En C#, la POO es un enfoque fundamental para escribir código. Aquí hay una descripción general de los conceptos clave de la POO en C#:
- Clases: Las clases son plantillas que definen las propiedades y métodos de un objeto. Puedes pensar en una clase como un plano para crear objetos.
- Objetos: Los objetos son instancias de clases. Cada objeto tiene su propio conjunto de propiedades y métodos definidos por su clase.
- Herencia: La herencia permite que una clase herede propiedades y métodos de otra clase. Esto ayuda a reutilizar y organizar el código de manera más eficiente.
- Polimorfismo: El polimorfismo permite que una clase tenga múltiples implementaciones de un método, dependiendo de su contexto.
- Encapsulamiento: El encapsulamiento oculta los detalles de implementación de una clase y expone solo lo necesario. Esto se logra mediante modificadores de acceso como `public`, `private`, `protected` y `internal`.
public class Automovil
{
public string Marca;
public string Modelo;
public int Año;
public void Arrancar()
{
Console.WriteLine("El automóvil está arrancando.");
}
}
Automovil miAutomovil = new Automovil();
miAutomovil.Marca = "Toyota";
miAutomovil.Modelo = "Corolla";
miAutomovil.Año = 2022;
miAutomovil.Arrancar();
public class Vehiculo
{
public int VelocidadMaxima;
public void Arrancar()
{
Console.WriteLine("El vehículo está arrancando.");
}
}
public class Automovil : Vehiculo
{
public string Marca;
public string Modelo;
public int Año;
}
public class Vehiculo
{
public virtual void Arrancar()
{
Console.WriteLine("El vehículo está arrancando.");
}
}
public class Automovil : Vehiculo
{
public override void Arrancar()
{
Console.WriteLine("El automóvil está arrancando.");
}
}
public class Automovil
{
private int _velocidad;
public int Velocidad
{
get { return _velocidad; }
set
{
if (value >= 0)
_velocidad = value;
}
}
public void Acelerar()
{
Velocidad += 5;
}
}
6. Abstracción
La abstracción se trata de simplificar la complejidad al ocultar detalles innecesarios y mostrar solo lo esencial. En C#, puedes usar clases y métodos abstractos para lograr la abstracción. Un método abstracto es un método que se declara en una clase abstracta pero no contiene implementación.
public abstract class Vehiculo
{
public abstract void Arrancar();
}
public class Automovil : Vehiculo
{
public override void Arrancar()
{
Console.WriteLine("El automóvil está arrancando.");
}
}
7. Interfaces
Una interfaz en C# es un contrato que define un conjunto de métodos y propiedades que una clase debe implementar. Las interfaces son útiles para lograr la abstracción y son una forma de lograr el polimorfismo en C#.
public interface IVehiculo
{
void Arrancar();
}
public class Automovil : IVehiculo
{
public void Arrancar()
{
Console.WriteLine("El automóvil está arrancando.");
}
}
8. Sobrecarga de métodos
En C#, puedes tener varios métodos con el mismo nombre en la misma clase, siempre que los parámetros sean diferentes. Esto se llama sobrecarga de métodos y te permite realizar diferentes implementaciones de un método en función de los parámetros.
public class Automovil
{
public void Arrancar()
{
Console.WriteLine("El automóvil está arrancando.");
}
public void Arrancar(string mensaje)
{
Console.WriteLine(mensaje);
}
}
9. Constructores y destructores
Los constructores son métodos especiales en la clase que se llaman cuando se crea una instancia de la clase. Los destructores son métodos que se llaman cuando una instancia de una clase se está eliminando.
public class Automovil
{
public Automovil()
{
Console.WriteLine("Se ha creado un nuevo automóvil.");
}
~Automovil()
{
Console.WriteLine("Se está eliminando un automóvil.");
}
}
10. Excepciones
Las excepciones son errores que ocurren durante la ejecución del programa. En C#, puedes usar bloques `try`, `catch` y `finally` para manejar las excepciones y evitar que el programa se bloquee.
try
{
// Código que puede causar una excepción
}
catch (Exception ex)
{
// Código que se ejecuta si ocurre una excepción
Console.WriteLine(ex.Message);
}
finally
{
// Código que se ejecuta independientemente de si ocurre una excepción
}

Comentarios