4. Programación orientada a objetos

Importante

La Orientación a Objetos o Programación Orientada a Objetos (de forma abreviada POO) es una paradigma o metodología de programación avanzada, que ofrece al programador una serie de conceptos y herramientas que posibilitan fundamentalmente dos cosas:

  1. Aproximar la forma de programar lo máximo posible a la vida real.
  2. Permitir la reutilización de código fuente de la forma más sencilla posible.
Escribiendo un diagrama en pizarra transparente
Imagen en Pixabay de LTDSupport bajo licencia CC0 Public Domain

Hasta ahora has tratado elementos, conceptos y herramientas propios de una técnica de programación llamada programación estructurada. En ella, el programador se centra en realizar una serie de procedimientos y funciones que manejan datos, es decir, que primero se centra en desarrollar el código y luego en definir los datos. En cambio, en la programación orientada a objetos se da justamente lo contrario, el programador primero se centra en pensar en los datos y definirlos, pensando con posterioridad en el código que los maneje.

Con este apartado se pretende dar un giro a la forma de programar que hasta ahora conoces. Los contenidos intentarán hacerte ver la programación como una tarea más cercana al enfoque real que lo que hasta este momento has podido apreciar.

¿Entonces todo lo que hemos visto ya no sirve? Si piensas eso te equivocas, ya que todo lo aprendido es la base para lo que viene ahora.

Hay lenguajes de programación que permiten la orientación a objetos y lenguajes que no.

¿Recuerdas a nuestro querido Sr. Computer? En su oficina usan una aplicación de gestión para introducir pedidos, enviar comunicaciones a los clientes, ... Una farmacia, una pequeña tienda de muebles, un hospital, la agencia tributaria, necesitan aplicaciones de gestión que pueda entender y usar un amplio y variado número de usuarios.

Las posibilidades de creación de aplicaciones con este tipo de lenguajes son tan grandes que los lenguajes más conocidos son lenguajes orientados a objetos.
  • C++ y ADA son lenguajes textuales.
  • Java y VB.NET son lenguajes orientados a internet.

Programar es conseguir que una máquina resuelva un problema. La orientación a objetos es una forma de programar (un paradigma) que intenta representar la realidad con la que se trabaja.

Para ello se busca el modelo que queremos trabajar (llamado clase) y, cuando el programa se ejecuté se crearán objetos de ese modelo.

Vamos a intentar explicar la orientación a objetos mediante el siguiente ejemplo:

Tenemos que programar la gestión de urgencias de un hospital.

¿Por dónde empezamos? Primero diseño la clase paciente:

Defino los campos que necesito tratar, almacenar o compartir. Podrían ser su número de historial, sus datos personales, su historial y su tratamiento.

Defino además los métodos que necesito para trabajar con el paciente, por ejemplo: diagnosticar, comprobar la evolución, dar el alta, etc.

Y ya sólo falta que ocurran eventos, el primero de ellos es que con cada persona que entre a urgencias se creará su ficha, un objeto de la clase paciente. Gracias a los métodos que tenemos programados podemos ir actualizando su historial, consultar su estado, darle el alta,....

Y además podemos establecer más clases, incluso heredadas. Así puedo tener la clase diabético, que es un tipo de paciente con su atributos y métodos específicos. 

Caso práctico

El paradigma de programación orientación a objetos es uno de los más utilizados en la actualidad. Para comprenderlo bien, es necesario aplicar el concepto de objeto en un ejemplo.

Un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos. Está formado por:

- Estados.- son las propiedades del objeto representadas por variables.

- Métodos.- son los comportamientos que el objeto es capaz de hacer.

En este ejercicio te proponemos que intentes definir un objeto: "una película". Haz una lista con los estados y los métodos que contendría dicho objeto.