programación orientada a objetos La POO (Programación Orientada a Objetos) es un paradigma de programación que organiza el código en clases y objetos , permitiendo la creación de software modular y reutilizable. Los pilares fundamentales de la POO son: abstracción, encapsulación, herencia y polimorfismo.
Pilar 1 Abstracción: Se enfoca en representar las características relevantes de un objeto, ocultando los detalles internos que no son necesarios para su uso. Esto facilita la gestión de la complejidad y permite a los programadores concentrarse en el comportamiento del objeto.
Ejemplo 1 <? php abstract class Animal { abstract public function sonido(); } class Perro extends Animal { public function sonido() { echo "Guau"; } } $ miPerro = new Perro(); $ miPerro ->sonido(); // Muestra: Guau ?>
Pilar 2 Encapsulación: Oculta los datos y métodos de un objeto dentro de la clase, controlando el acceso a través de interfaces públicas. Esto protege los datos de accesos no autorizados y facilita la reutilización del código.
Ejemplo 2 <? php class Persona { private $nombre; public function setNombre ($n) { $ this ->nombre = $n; } public function getNombre () { return $ this ->nombre; } } $p = new Persona(); $p-> setNombre ("Ana"); echo $p-> getNombre (); // Muestra: Ana ?>
Pilar 3 Herencia: Permite que una clase (clase hija) herede los atributos y métodos de otra clase (clase padre), promoviendo la reutilización y la organización del código. Esto facilita la creación de relaciones entre clases y la construcción de jerarquías.
Ejemplo 3 <? php class Animal { public function hacerSonido () { echo "Algún sonido"; } } class Perro extends Animal { // Hereda hacerSonido () de Animal } $ miPerro = new Perro(); $ miPerro -> hacerSonido (); // Muestra: Algún sonido ?>
Pilar 4 Polimorfismo: Permite que un objeto se comporte de diferentes maneras dependiendo del contexto, a través de técnicas como sobrecarga o sobreescritura de métodos . Esto aumenta la flexibilidad del código y la adaptabilidad del software.
Ejemplo 4 <? php class Animal { public function sonido() { echo "Sonido genérico"; } } class Perro extends Animal { public function sonido() { echo "Guau"; } } $ miAnimal = new Perro(); $ miAnimal ->sonido(); // Muestra: Guau ?>