Abstracción de datos
La abstracción de datos es una parte esencial de la programación orientada a objetos. Proporciona solo la información esencial al mundo exterior a la vez que oculta los detalles de fondo o la implementación. Esto ayuda a simplificar el objeto y su tarea.
Ejemplo: Un conductor sabe que presionar el acelerador aumenta la velocidad, pero no necesita conocer los mecanismos internos del motor del automóvil. Incluir solo los datos críticos necesarios para que el objeto realice una tarea facilitará la realización de futuros cambios y adiciones.
Encapsulación
La encapsulación explica la envoltura de los datos en una sola unidad. Es el mecanismo que vincula el código y los datos que manipula.
Las variables o datos de una clase están ocultos de otras clases y solo se puede acceder a ellos a través de las funciones de los miembros de su propia clase. Esto también se conoce como ocultación de datos.
Proporciona mayor seguridad y ayuda a prevenir la corrupción no deseada de los datos.
Ejemplo: Un ejecutivo de finanzas necesita datos de ventas para un informe. Tiene que ponerse en contacto con alguien de la organización de ventas para acceder a esa información desde su sistema de gestión de relaciones con el cliente (CRM) en lugar de acceder directamente a ella él mismo.
Herencia
Este pilar se refiere a la capacidad de una clase para derivar propiedades y características de otra clase. La herencia permite la reutilización del código, ya que las propiedades y funciones se pueden heredar en lugar de escribirse repetidamente, lo que reduce la redundancia y ahorra tiempo.
Ejemplo: Un empleado podría heredar variables y características de una persona general.
Polimorfismo
Polimorfismo significa “tener múltiples formas”. Explica que un mismo objeto puede tener múltiples funciones según el contexto.
El polimorfismo permite que una sola llamada a un método produzca un resultado diferente según el objeto sobre el que esté actuando. Permite que una función funcione con una interfaz específica al manipular de manera uniforme entidades de diferentes clases.
Ejemplo: Una sola persona puede ser en simultáneo padre, esposo y empleado, y mostrar diferentes comportamientos en diferentes contextos. Si tienes los objetos círculo y cuadrado, podrían pertenecer a la clase figura, y que el método dibujar pueda usarse para ambos.
Otros principios clave de la POO incluyen: clase, objeto, vinculación dinámica y paso de mensajes.
Objeto
Un objeto es la unidad básica de la programación orientada a objetos. Representa entidades de la vida real o abstractas y es una instancia de una clase. La memoria solo se puede asignar cuando se crea un objeto.
Los objetos interactúan enviando y recibiendo mensajes, para lo que necesitan saber solo el tipo de mensaje aceptado y la respuesta devuelta, no los detalles internos de cada uno.
Ejemplo: Un perro es un objeto de la vida real con características como color y raza, y comportamientos como ladrar, dormir y comer.
Clase
Similar a la herencia, los objetos se clasifican en clases. Una clase sirve como un blueprint para objetos individuales, ya que define un conjunto de propiedades o métodos comunes a todos los objetos de ese tipo. Consiste en miembros de datos (variables y atributos) y funciones de miembro (métodos).
Ejemplo: La clase coche podría definir propiedades como cuatro ruedas, límite de velocidad y autonomía.
Vinculación dinámica
La vinculación dinámica es el mecanismo por el cual el código que se va a ejecutar para una llamada a una función se determina en el tiempo de ejecución. Esto significa que el código exacto asociado con una llamada de procedimiento no se conoce hasta el momento de la llamada.
La vinculación dinámica a menudo funciona con la herencia y el polimorfismo, lo que permite que un objeto busque en su jerarquía de clases principal para encontrar y ejecutar la versión correcta de ese método. Esta flexibilidad permite que un objeto adopte diferentes comportamientos en el tiempo de ejecución.
Ejemplo: Vehículo es tu clase base, y a partir de eso, tienes dos clases derivadas, coche y motocicleta. Ambos tienen características compartidas, como arrancar un motor para que funcione, pero la forma en que realizan esa acción es única.
Paso de mensajes
El paso de mensajes se usa en la POO, donde los objetos interactúan al enviarse información entre sí. Implica especificar el nombre del objeto, el nombre de la función y la información que se va a enviar.
Ejemplo: Un conductor sería un objeto que interactúa con otro objeto, un vehículo.
Ventajas de la POO