Saltar al contenido principal

Programación orientada a objetos

La Programación Orientada a Objetos (POO) es un paradigma de programación más cercano a la forma de expresar los conceptos que usamos en la vida real que la programación estructurada.

La POO organiza el código en "objetos" que representan entidades o conceptos del mundo real. Cada objeto contiene variables, llamadas atributos, y funciones llamadas métodos, que operan sobre esos datos. Este paradigma facilita la organización del código y hace que sea más modular, reutilizable y fácil de mantener.

Ventajas

  • Modularidad: Puedes dividir el código en clases y objetos, lo que facilita su organización y comprensión.
  • Reutilización: Las clases pueden ser reutilizadas y extendidas mediante la herencia.
  • Mejora en la gestión de la complejidad: Permite modelar sistemas complejos al descomponerlos en objetos que representan entidades del mundo real.
  • Facilidad de mantenimiento y escalabilidad: El código organizado en objetos es más fácil de mantener y adaptar a nuevos requisitos.

Características

  • Clase (class): Es un modelo que define las características y el comportamiento de un tipo de objeto. Las clases son como planos que permiten crear múltiples instancias u objetos.
  • Objeto (object): Cada objeto tiene su tipo, que, en terminología de POO se denominaría clase, y su propia memoria constituida por otros objetos. Se puede crear un nuevo objeto empaquetando objetos existentes.
  • Encapsulamiento (encapsulation): Es el principio de ocultar los detalles internos de un objeto y exponer solo lo necesario.
  • Herencia (hierarchy): Es el mecanismo por el cual una clase puede heredar atributos y métodos de una clase superior. Esto permite la reutilización del código y la creación de jerarquías de clases.
  • Polimorfismo (polimorfism): Se refiere a la capacidad de que diferentes clases respondan a un mismo método de maneras distintas. Puede lograrse a través de sobrecarga (varias versiones de un método en la misma clase) o sobrescritura (una subclase redefine un método de su clase padre).
  • Un programa es un conjunto de objetos diciéndose unos a otros lo que deben hacer mediante el envío de mensajes. Para hacer una petición a un objeto, se le envía a ese objeto un mensaje.

En los siguientes puntos profundizaremos más en ellas.