
La Programación Orientada a Objetos (POO) es una forma de escribir programas. Imagina que es como construir con bloques LEGO. Cada bloque es un objeto con sus propias características y acciones.
¿Qué es un Objeto?
Un objeto es una unidad básica en POO. Representa algo del mundo real. Piensa en un perro. Un perro tiene un nombre (característica) y puede ladrar (acción). En POO, el nombre sería un atributo y ladrar sería un método.
Atributos: Son las características del objeto. Por ejemplo, el color del perro, su raza, su edad. Son como las variables que describen al objeto.
Must Read
Métodos: Son las acciones que el objeto puede realizar. Por ejemplo, ladrar, correr, comer. Son como las funciones que el objeto puede ejecutar.
Clases: El Molde de los Objetos
Una clase es como un plano o un molde. Define cómo serán los objetos de ese tipo. Volviendo al ejemplo del perro, la clase "Perro" define que todos los perros tendrán nombre, raza, edad, y podrán ladrar, correr y comer. No es el perro en sí, sino la descripción de cómo será cualquier perro.

De la clase "Perro" puedes crear varios objetos perro. Cada uno con su propio nombre, raza y edad, pero todos con la capacidad de ladrar, correr y comer, porque eso lo define la clase.
Los Pilares de la POO
La POO se basa en cuatro ideas principales:

1. Abstracción: Mostrar solo la información importante. No necesitas saber cómo funciona un coche por dentro para conducirlo. Solo necesitas saber el volante, el acelerador y el freno. La abstracción es simplificar la complejidad.
2. Encapsulamiento: Proteger la información. Imagina una cápsula que guarda los datos y los métodos del objeto. Solo se puede acceder a ellos a través de "puertas" específicas. Esto evita que se modifiquen los datos accidentalmente.

3. Herencia: Crear clases nuevas a partir de clases existentes. Imagina que tienes la clase "Vehículo". Puedes crear una clase "Coche" que herede las características de "Vehículo" (tiene ruedas, se mueve) y añadirle características propias (tiene puertas, tiene un volante). Esto evita repetir código.
4. Polimorfismo: Significa "muchas formas". Un mismo método puede comportarse de manera diferente según el objeto. Por ejemplo, el método "hacerSonido" puede hacer "guau" si el objeto es un perro, y "miau" si el objeto es un gato.

Ejemplo Sencillo
Imagina que modelas un coche en POO.
- Clase: Coche
- Atributos: color, marca, modelo, velocidad
- Métodos: acelerar(), frenar(), girar()
Cada coche que crees (un objeto) tendrá su propio color, marca, modelo y velocidad, pero todos podrán acelerar, frenar y girar.
Beneficios de la POO
La POO hace que el código sea más fácil de entender, mantener y reutilizar. Organiza el código en unidades lógicas (objetos), lo que facilita la colaboración entre programadores y la solución de problemas. Es una herramienta poderosa para construir aplicaciones complejas.