Programación orientada a objetos (POO)


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

Lo voy a explicar de la manera más simple y de la forma para que entendamos todos, la programación orientada a objetos(POO) es un paradigma de programación, pero, ¿qué carajos es un paradigma de programación? te preguntaras, en pocas palabras podemos verlo como las distintas formas de llegar a la solución de un problema, esas distintas formas son los paradigmas, de estas distintas formas de resolver un problema estará la que sea más óptima. Esto en programación serían estilos al programar.

Tengo que confesar que la programación orientada me había estado confundiendo desde hace tiempo, pero no es realmente complicada, solo tuve que aprender un poco más sobre cómo funciona y su aplicación.

La manera en la probablemente todos aprendimos a programar es la manera estructurada o secuencial, la programación orientada a objetos elimina por completo este paradigma estructurado, te tengo que confesar que es difícil cambiar esa manera de pensar, estoy aprendiendo POO pero aun me cuesta bastante pensar de manera diferente a la estructurada, pero con constancia y práctica, ya no se te va complicar más.

En programación orientada a objetos todo es un objeto, y listo aquí termina el post.

Clses, propiedadades, métodos y objetos

La programación orientada a objetos consiste en crear clases y crear objetos con las clases que ya habíamos creados, pensemos en las clases como el molde de donde saldrá el objeto, los objetos pueden ser físicos o conceptuales

Teniendo todo esto claro, en POO también existen propiedades o atributos y métodos. Las propiedades o atributos son características individuales, para entenderlo mejor, supongamos que tenemos una clase de felinos, dentro de esa clase van a estar los atributos individuales para cada objeto, estos atributos pueden ser: edad, peso, altura, color, etc.

También tenemos métodos, los métodos son sencillos de entender, ya que son las acciones o funciones que puede realizar el objeto, volviendo a la clase de felinos, ahora le podemos agregar métodos, como: dormir, comer, caminar, saltar y todos los que se te puedan ocurrir.

Ahora ya tenemos una clase y esa clase contiene atributos o propiedades y métodos, todo esto da como resultado un objeto, un objeto de la clase de felinos puede ser un gato, un gato de 5 meses, 8 kg, 15 cm de altura, negro y este gato tambien duerme, come y camina.

Recordemos que la clase es el molde del objeto, de una clase se pueden sacar varios objetos, de la clase de felinos podemos sacar un objeto tigre o león, con sus diferentes propiedades y métodos.

Los 4 pilares mas importante en POO

Abstracción: Cuando separamos los atributos y métodos de un objetos para crear las clases (moldes), de esta manera descartamos toda información que no resulta relevante para crear las clases.

Encapsulación: La encapsulación pasa como efecto secundario de la abstracción, esta contiene todos los datos y los comportamientos importantes de un objeto en un mismo lugar, estos datos pueden ser privados, con el encapsulamiento podemos controlar el acceso a dichos datos y la modificación de ellos, esto viene de una técnica llamada programación defensiva.

Herencia: Nos permite crear nuevas clases a partir de otras, usamos herencias cuando tenemos código que se está repitiendo ya que esto rompe la norma o filosofía de “Don’t repeat yourself”, esta filosofía promueve la reducción de duplicación en programación, con herencia vamos a reutilizar codigos. En la herencia también tenemos jerarquía de padre e hijo.

Polimorfismo: Poli significa muchas y morfismo significa formas, el polimorfismo se usa cuando hacemos una herencia, heredamos el mismo método(comportamiento) pero lo modificamos para funcionar con lo que queremos.