Saltar al contenido

¿Qué es un lenguaje de programación orientado a objetos?

que es un lenguaje de programacion orientado a objetos

Cuando hablamos de programación orientada a objetos, estamos refiriéndonos a una manera de programar, lo que se llama paradigma, dónde todo se base en la gestión de estos objetos.

Por cierto, si te lo encuentras con las siglas OOP (en inglés) o POO, estamos hablando de lo mismo 😀.

Veamos como hemos llegado hasta aquí. Por ejemplo, el lenguaje c es un lenguaje estructurado, porque separamos el código en rutinas (como puede ser un if o los bucles for y while).

Los lenguajes estructurados evolucionaron a la programación modular, que consiste en separar o dividir el programa, lo que habitualmente llamamos los métodos o funciones.

Ejemplos de lenguajes de programación estructurados pueden ser C o Pascal.

Y siguiendo esta lógica de cambios, los lenguajes han seguido mejorando hasta encontrarnos con la POO o programación orientada a objetos, que es la que usa los lenguajes de programación más modernos.

Características de la programación orientada a objetos

Siempre trabajaremos con objetos cuando hablamos de POO. No podemos escribir una función “suelta”, o una variable. Así que podemos ver que el objeto contiene toda la información, además que la única manera de programar es interactuar con otros objetos.

Los fundamentos de la programación orientada a objetos nos obliga a programar de una manera completamente diferente.

La característica principal de la programación estructurada es la secuencia de pasos o instrucciones mínimos requeridos para resolver el problema. En cambio, en la programación orientada a objetos lo importante es la creación y la interacción de estos objetos, de ahí que sean mayores los beneficios cuando se programan con los objetos.

Así que te deben de sonar las siguientes características:

Abstracción de un objeto

Un objeto es como una caja negra, es decir, no sabemos como hace las cosas por dentro, excepto en las opciones que nos deja.

La abstracción de un objeto nos permite distinguir el objeto de los demás, ya que tiene entidad por si mismo. Así que aislamos el objeto de los elementos que lo acompañan y lo componen.

Polimorfismo del objeto

Su nombre nos sugiere que dentro de un objeto podemos acceder de varias maneras, y todo desde el mismo objeto. También nos ofrece la posibilidad que el objeto tenga múltiples formas.

Por ejemplo, si un objeto debe dibujar una forma en pantalla, puede ser que un mismo nombre de función se puede llamar de distintas opciones, además que el resultado final también puede ser distinto.

No se dibujará de la misma manera un texto, un círculo, un triángulo o un cuadrado.

Para aplicar el polimorfismo, debemos hablar de la sobrecarga de métodos, además de funciones virtuales.

Encapsulamiento de datos

Se suele confundir el encapsulamiento de datos con el principio de ocultación.

El principio de ocultación implica que un objeto es como una caja negra, dónde decidimos que datos quedan protegidos y no se pueden modificar desde fuera, pero también como nos vamos a comunicar con este objeto.

No estamos hablando que una variable es de sólo lectura, es posible decidir que esa variable no existe para el programador que está usando el objeto. Así decidimos que, por ejemplo, no podemos cambiar el estado de un objeto de una manera que no deseamos.

Una vez sabemos como ocultar los datos de un objeto, podemos decir que con el encapsulamiento de datos reunimos todas las propiedades, organizando las variables y métodos, para considerar que un objeto tiene entidad propia.

Herencia entre objetos

La programación orientada a objetos implica que los objetos están relacionados entre sí. Los objetos se llaman, o se comunican, con otros objetos (no podrías ejecutar una función directamente).

Otra manera que tienen los objetos de comunicarse es mediante la herencia entre objetos. Hablamos de un objeto padre, con una serie de comportamiento y propiedades, y uno  o varios objetos hijo que heredan y comparten todas estas características.

Y todo eso es gracias también al polimorfismo y el encapsulamiento, las otras características de la POO que acabamos de ver.

Fundamentos de programación orientada a objetos

Los fundamentos de programación orientada a objetos crean una serie de conceptos nuevos que no se ven con la programación estructurada.

Vamos a ver brevemente una  introducción de la POO  con estos conceptos más importantes:

Clase [o plantilla de objetos]

Tal y como dice el título, cuando definimos una clase en nuestro lenguaje de programación, estamos creando una plantilla. Cuando se crean los objetos de esa clase, se hará tal y como se ha definido en la clase.

Aquí definimos variables, propiedades y funciones.

Objeto

Estamos hablando todo el rato de programación orienta a objetos, pero ¿qué es un objeto? 😁

Un objeto es cuando declaramos una variable, y el tipo de datos de esa variable es la clase que hemos definido. A eso se la llama la instancia de la clase.

Atributos de una clase

Son las características de una clase (las variables que son públicas y se pueden ver). También te lo puedes encontrar como propiedades de una clase.

Estas propiedades son las que se pueden cambiar cuando ejecutamos el código.

Eventos

La programación orientada a eventos no implica que tenga que ser en un lenguaje de programación que trabaja con objetos. Así que pueden pasar eventos en objetos o en otros lenguajes (como en la versión de Visual Basic 6).

Pero, ¿qué es un evento en programación? Pues cuando ocurre algo en el sistema. Puede ser un click en un botón, cuando se pulsa una tecla del teclado, se envía un mensaje, se cierra un programa…

El sistema operativo captura cuando ocurre ese evento, y nosotros podemos decidir mediante programación que hace cuando se desencadena. Es decir, relacionamos un evento al método que tiene una clase de un objeto.

Ejemplos de lenguajes de programación con objetos

Los lenguajes de programación más modernos utilizan la programación orientada a objetos, pero llevamos muchos años ya con este paradigma de programación.

Algunos de los lenguajes de programación que hemos visto en nuestra web:

  • C# o C Sharp.
  • Pascal, o mejor dicho, Object Pascal.
  • Java, que siempre es la referencia cuando hablamos de la POO.
  • JavaScript.
  • R.
  • Perl, a partir de la versión 5.
  • PHP con PHP 5.
  • Python.
  • Ruby.
  • Swift.
  • Visual Basic, con la plataforma .NET.