1. ¿Qué es la Programación Orientada a Objetos (POO)?
La POO es un modelo o paradigma de programación que organiza el diseño de software alrededor de **objetos**, en lugar de "acciones" o "lógica". Un objeto es una entidad que combina datos (atributos) y comportamiento (métodos) en una sola unidad.
El objetivo es modelar problemas del mundo real (un coche, una persona, una factura) de una forma más intuitiva en el código.
Es la plantilla o plano para crear objetos. Define las propiedades y métodos comunes. Ejemplo: La clase Coche define que todos los coches tendrán una `marca` y podrán `arrancar()`.
Es el resultado de crear una "copia" de la clase. Es la entidad real con la que trabajamos. Ejemplo: miCocheMustang es un objeto de la clase Coche.
2. Los 4 Pilares de la POO
La POO se sostiene sobre cuatro conceptos fundamentales que permiten crear código robusto, flexible y reutilizable.
1. Encapsulamiento
Es la idea de ocultar el estado interno (los datos) de un objeto y exponer solo las operaciones necesarias (métodos) para interactuar con él. Protege los datos de modificaciones indebidas.
2. Abstracción
Es ocultar la complejidad interna y mostrar solo las características esenciales. Un conductor no necesita saber cómo funciona el motor (abstracción), solo necesita usar el pedal del acelerador.
3. Herencia
Permite que una clase (hija) herede atributos y métodos de otra clase (padre). Esto fomenta la reutilización de código. Ejemplo: Una clase CocheDeportivo hereda de Coche.
4. Polimorfismo
Significa "muchas formas". Permite que objetos de diferentes clases respondan al mismo mensaje (método) de formas diferentes. Ejemplo: Un método hacerSonido() será diferente para un Perro que para un Gato.
3. Ejemplo en Java
Lenguajes como Java, C++, Python y C# implementan estos principios. Java es uno de los ejemplos más claros y populares de POO.
Ejemplo de Clase y Objeto en Java
// 1. Se define la CLASE (el molde)
public class Coche {
// Atributos (datos encapsulados)
private String marca;
private int modelo;
// Constructor (método para crear el objeto)
public Coche(String marca, int modelo) {
this.marca = marca;
this.modelo = modelo;
}
// Método (comportamiento)
public void arrancar() {
System.out.println("El " + this.marca + " ha arrancado.");
}
}
// 2. Se crean OBJETOS (instancias)
Coche miMustang = new Coche("Ford", 1969);
Coche miVocho = new Coche("VW", 1990);
// 3. Se usan los objetos
miMustang.arrancar(); // Salida: El Ford ha arrancado.
miVocho.arrancar(); // Salida: El VW ha arrancado.
4. Recursos Adicionales
La POO es un tema denso. Estos recursos te ayudarán a profundizar y practicar:
-
[Video] Programación Orientada a Objetos
Una explicación increíblemente clara y concisa de los conceptos fundamentales de la POO en español.
-
[Web] Tutorial de POO en Java (W3Schools)
Un tutorial interactivo (en inglés) donde puedes leer las definiciones y probar el código de Java directamente en el navegador.