¿Qué es la programación orientada a objetos?

¿Sabes en qué consiste exactamente la programación orientada a objetos? Es uno de los conceptos más importantes que debes aprender como programador y hemos preparado un artículo que te explica como nadie cada detalle.

Diseño web
8 minutos
Hace 5 años
¿Qué es la programación orientada a objetos?

¡Accede a cientos de cursos
con solo un pago al año!

Blog Microbanner

La programación es muy extensa y existen muchas formas de programar, es tan amplia que incluso el proceso de aprendizaje podría ser confuso y frustrante.

Hablando en términos generales, a los estilos de programación se les llama paradigmas. El paradigma con el que todos aprendimos a programar es el secuencial o estructurado, aquí las instrucciones van de arriba hacia abajo, no tenemos que abstraer cosas complejas, simplemente damos ordenes una tras otra.

programacion estructurado

Cuando empiezas con proyectos más grandes te das cuenta de que este paradigma no te ayuda mucho. Imagina que un cliente te pide una tienda en línea para vender zapatos:

  • Tienes los zapatos que tienen un precio, color, talla, marca, etc.
  • Necesitas un carrito que se conecte con las pasarelas de pago.
  • Tienes a los usuarios que van a hacer las compras.

Son muchas cosas y programar la tienda de arriba hacia abajo terminaría en un desastre, pero es la manera en la que nos enseñaron y así lo hemos hecho. Yo mismo he cometido este error y sé que mentalmente, dejar atrás este modelo de programación es muy difícil.

¿Que tienen que ver los objetos con la programación?

La programación orientada a Objetos es el paradigma más usado en el mundo. Cada uno de los elementos de la interfaz es un objeto y cada objeto tiene datos y funcionalidad.

Los zapatos son un objeto y, por lo tanto, tiene estas dos propiedades:

  • Datos: Nombre, marca, color, talla, etc.
  • **Funcionalidad:**Pueden ser agregados al carrito y pueden ser comprados.

Los usuarios también son un objeto:

  • Datos: Nombre, número de tarjeta de crédito, etc.
  • Funcionalidad: Pueden comprar zapatos.

Lo mismo pasa con el carrito:

  • Datos: Zapatos agregados al carrito, usuario dueño de ese carrito, etc.
  • Funcionalidad:Agregar o quitar zapatos, enviar la orden a la pasarela de pago, etc.

POO VS estructurada

Con la Programación Orientada a Objetos pasamos de tener un código de arriba hacia abajo en el que las funcionalidades están mezcladas y son difíciles de separar o escalar, a un sistema en el que tenemos los elementos (Objetos) separados y se comunican entre ellos:

  • El usuario se comunica con el producto para comprarlo.
  • El producto se comunica con el carrito para ser agregado.
  • El carrito se comunica con la pasarela de pago y con el usuario.

De esta manera es más fácil manejar y mantener un sistema, si necesitáramos una nueva funcionalidad podríamos sin problemas agregar un nuevo objeto o añadir datos y funcionalidades a los objetos que ya existen.

Atributos y métodos

Como dije antes, los objetos tienen datos y funcionalidad y en la POO se les llama de esta manera:

  • Datos → Atributos
  • Funcionalidad → Métodos

atributos y métodos

Abstracción

En palabras simples, la abstracción es pensar ¿Cuáles son los atributos y métodos que necesita un objeto? Imagina que estamos programando la aplicación de cursos de EDteam y queremos crear el objeto usuarios, ¿Qué atributos y métodos necesitamos?

Este es el resultado de nuestro proceso de abstracción

Abstracción

Clase

Las clases son plantillas que contienen la estructura básica de un objeto (Atributos y Métodos). En el ejemplo anterior donde realizamos el proceso de abstracción no creamos un objeto, en realidad creamos la plantilla en la que se basaran los objetos. Cada vez que alguien se registra en EDteam usara la clase (plantilla) para crear el objeto usuario.

clase

Instancia

El proceso de crear un objeto a partir de una clase se llama Instanciary cada objeto creado también se le puede llamar Instancia. Con una sola clase podemos crear cientos de usuarios (Instancias) sin tener que escribir código para cada uno de ellos.

Instancia

Programación Orientada Objetos en una aplicación real

El siguiente esquema representa el proceso que tiene que seguir un usuario para convertirse en un estudiante premium de EDteam.

POO en la vida real

Registro (Class Usuario)

  • Recogemos las propiedades del nuevo usuario (nombre, apellidos, contraseña, etc) y creamos el objeto → usuario_528

Pagar (Class Orden_de_compra)

  • Esta clase obtendrá las siguientes propiedades: Método de pago, id de usuario, etc y creará una instancia asociada a nuestro usuario_528 → Orden_de_compra_528

Pasar a premium (Class Premium)

  • La clase premium tiene como propiedades: cursos, especialidades, clases en vivo, etc.
  • Se crea el objeto → Premium_528 y se le asigna los beneficios al usuario_528

Como puedes ver, nuestros objetos se crearon a partir de clases ya establecidas en el sistema.

Espero que te haya gustado esta introducción a la programación orientada a objetos. Si quieres aprender más sobre este paradigma te invito a tomar nuestro curso de POO, en que aprenderás a:

✅ Comprender la programación orientada a objetos.
✅ Abstraer problemas en objetos.
✅ Aplicar este paradigma en distintos lenguajes.

👉 https://ed.team/cursos/poo

Curso POO

También puedes ver el video donde tratamos con más profundidad este tema

Cuéntame en los comentarios si lograste comprender que es la Programación Orientada a Objetos Nos vemos la próxima con más contenido. Chau.

Comentarios de los usuarios

Pregunta a ChatEDT