POO (o sea, Programación Orientada a Objetos)

POO (o sea, Programación Orientada a Objetos)

Vamos a continuar aprendiendo algunos conceptos sobre esto de la Programación. Hoy quiero hablaros de algo que es completamente imprescindible que conozcáis (y dominéis) hoy en día, si queréis dedicaros a esto con ciertas garantías. Me estoy refiriendo a la Programación Orientada a Objetos (POO).

Así pues, sin más dilación, comencemos!! : )

Qué es la Programación Orientada a Objetos

Para los que os estéis preguntando qué leches es esto de la programación orientada a objetos, simplemente deciros que se trata de una “filosofía”; es decir, es un modelo de programación, una forma de programar (lo que en el mundillo se suele llamar un ‘paradigma’). Y por tanto, un lenguaje orientado a objetos es un lenguaje de programación que permite diseñar aplicación utilizando este paradigma (esta filosofía).

No es nada nuevo ni novedoso, ya que es algo que se lleva utilizando desde los años 60’s; pero realmente no se convirtió en un estilo de programación de referencia hasta mediados de los 80’s, probablemente debido a la enorme influencia por aquel entonces de C++ (una extensión del lenguaje C que incorporaba este paradigma de programación).

Hoy en día, la mayoría de los lenguajes de programación actuales son lenguajes orientados a objetos (o por lo menos, permiten programar de este modo).

Lo que debes tener claro es que la POO, sin lugar a dudas, implica…

Una forma de pensar diferente

Me estoy refiriendo a una nueva forma de pensar acerca del proceso de descomposición de problemas, y del desarrollo de soluciones.

En la programación tradicional, en lo que se conocía (y se sigue conociendo) como programación estructurada, lo que se hacía era descomponer el problema en subproblemas; es decir, el programa en subprogramas… y de este modo se iba abordando la solución.

Sin embargo, en la POO esto cambia, y se crea una nueva forma de descomponer el problema. Lo que se hace en este caso es que se hace una descomposición en objetos.

A continuación, te dejo una tabla en la que he querido plasmarte las diferencias entra la programación “tradicional” (la programación estructurada) y la programación orientada a objetos:

Diferencias entre la POO y la PE

Tabla comparativa entre la programación estructurada y la programación orientada a objetos

Diferencias entre la programación estructurada y la programación orientada a objetos (by EscuelaDeInformaticos.com)

Como puedes ver, las principales diferencias son:

  • La programación estructurada pone el foco en QUÉ es lo que hay que hacer en el problema; sin embargo, la POO pone el foco en cuál es el ESCENARIO REAL, y en lo que se centra es en simular ese escenario dentro de nuestro programa.
  • La programación estructurada basa su funcionamiento principalmente subrutinas (procedimientos y funciones); mientras que la programación orientada a objetos, como no podía ser de otra forma, basa su funcionamiento en este nuevo concepto que llamamos objetos.
  • Con la programación tradicional la ejecución de una programa no era más que una sucesión de llamadas a funciones y procedimientos; sin embargo, con la POO lo que se da es una sucesión de interacciones entre estos objetos.

Y bueno… en esta introducción de hoy no quiero dejarte con las dudas, así que…

Qué es un Objeto

Pues muy sencillo. Un objeto no es más que la representación de un concepto del mundo real dentro de nuestro programa.

Y debes saber que contiene toda la información necesaria para abstraer este concepto. Es decir:

  • Va a contener todos los datos que describen sus cualidades, sus atributos, etc.
    Y va a contener también todas las operaciones que pueden realizarse sobre estos datos.

Así que con la idea importante que quiero que te quedes es que:

Esta abstracción que hacemos, de este concepto del mundo real, dentro de nuestro programa va a modelar cambien en cierta manera los datos que describen sus cualidades y atributos, y las operaciones que se podrán realizar con este objeto.

A poco que leas o investigues sobre esto de la programación orientada a objetos, comprobarás que aparece por todos lados un concepto que también es bastante importante en este paradigma: las clases.

Y la pregunta natural es…

Qué es una Clase

En el mundo real ya sabes que pueden existir varios objetos de un mismo tipo. Pues utilizando la programación orientada a objetos podemos definir esto mismo utilizando las clases.

Un objeto en nuestro programa modelará o representará a un objeto concreto del mundo real; pero este objeto concreto será únicamente uno de los muchos objetos que de un mismo tipo que pueden existir en el mundo. Por ejemplo: mi coche es un objeto de la clase coche; el mío es un coche concreto, pero hay otros…

La clase es la que define los estados o atributos, y algunos métodos, que tienen en común todos los objetos de este tipo.

Se dice, por tanto, que el objeto concreto (mi coche) es una instancia de la clase coche.

Así que, en resumen, quiero que te quedes con la idea de que

Una clase es una plantilla, que define los atributos y métodos que son comunes para todos los objetos de un cierto tipo. Y esta plantilla nos permite crear cualquier número de objetos (es decir, crear instancias de esta clase).

Para que entiendas todo esto de una manera mucho más clara (y visual), voy a dejarte un fragmento de una lección del curso premium Aprende a Programar Desde Cero con Python, en el que explico de una manera muy sencilla y “de andar por casa” todos estos conceptos para que todo el mundo lo entienda, para que de este modo los alumnos puedan conseguir su objetivo: aprender a programar sin esfuerzo.

Espero que lo disfrutes!  : )

Ya seguiremos hablando de otros conceptos interesantes en próximos posts. Hasta entonces, muy buenos días!

 

¿Te ha gustado el artículo? Entonces compártelo con alguien a quien también le pueda gustar.

Sin comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *