¿Qué es la Programación Orientada a Objetos?
La programación orientada a objetos (POO) es una manera de escribir y organizar código de forma que se asemeja a cómo pensamos y entendemos el mundo real, esto permite que el código sea reutilizable, organizado y fácil de mantener. Para esto, POO Sigue el principio DRY (Don’t Repeat Yourself) esto con el fin de evitar duplicar el código y crear programas más eficientes así como mantener escalable un proyecto.
Además, la POO también ofrece herramientas poderosas como la abstracción,encapsulación, la herencia y el polimorfismo para manejar la complejidad y crear soluciones eficientes.
Ventajas
- Modela cosas complejas como estructuras simples y reproducibles.
- Los objetos se pueden utilizar en otros programas.
- El polimorfismo permite un comportamiento específico de clase.
- Los programas son más fáciles de depurar ya que las clases a menudo contienen toda la información aplicable.
- Estos lenguajes protegen de forma segura la información confidencial mediante la encapsulación.
- Permite reutilizar el código
Desventajas
- Complejidad: Al trabajar con múltiples clases y objetos el código puede volverse difícil de entender y mantener.
- Sobrecarga de memoria y procesamiento: Esto se debe ya que al usar objetos y métodos genera estructuras de datos complejas que consumen más recursos de los necesarios.
- Difícil de Optimizar: dado que se generan dependencias entre las clases y objetos esto puede limitar la capacidad de optimizar el código para hacerlo más eficiente.
- Curva de aprendizaje:
Lenguajes más utilizados en POO
Elementos de la Programación Orientada a Objetos
- Clases: Es un modelo o plantilla que sirve para crear objetos. Las clases definen las propiedades y comportamientos de un objeto.
- Objetos: instancia de una clase. Cada objeto tiene sus propias propiedades y comportamientos que se definen en su clase.
- Atributos: Son las características o propiedades de un objeto.
- Métodos: Son comportamientos de un objeto.
- Eventos: Similar a los métodos, pero en lugar de ser ejecutados por algún otro componente, los eventos son acciones que se activan de forma automática ante ciertas condiciones preestablecidas.
Pilares de la Programación Orientada a Objetos
Abstracción:
Es la capacidad de presentar las características esenciales de un objeto sin incluir detalles que sean necesarios
En este ejemplo muestra como la abstracción en Java permite definir una estructura común (en este caso, la clase abstracta es vehículo) con métodos abstractos que deben ser implementados por las clases hijas (coche). Esto facilita la reutilizar del código y permite la extensión y especialización de funcionalidades.
Encapsulamiento:
La encapsulación permite ocultar la complejidad interna de una clase, proporcionando una interfaz controlada para interactuar con los objetos de esa clase.
En este ejemplo, la clase Persona encapsula los datos de nombre y edad y proporciona métodos públicos para acceder y modificar estos datos de forma controlada. Ejemplo obtenido de : http://(Líderes En Formación Tecnológica, Reskilling y Upskilling | OpenWebinars, s. f.)
Polimorfismo:
Es la capacidad que tienen los objetos de contener valores de diferentes tipos durante la ejecución del programa.
En este ejemplo de polimorfismo la clase animal, tiene el método abstracto “makeSound”, el cual toma un valor diferente para cada subclase (en gatos es “Meow”, en perros “Woof”). Ejemplo obtenido de: http://(Blog IfGeekThen, s. f.)
Herencia:
Permite que una clase herede las propiedades y métodos de otra clase.