La programación orientada a objetos (POO) se basa en el concepto de objeto. Un objeto es una abstracción de una entidad que posee datos en forma de propiedades o atributos, y procedimientos en forma de métodos. Por ejemplo, si vemos a un humano como un objeto, un humano tiene propiedades como su altura o color de cabello, así como métodos como leer, escribir, comer, etc.
El primer lenguaje orientado a objetos fue Simula. Otros lenguajes orientados a objetos son C++, C#, PHP, Ruby, Python, etc.
Conceptos principales de la POO
Ya hablamos del concepto de objeto. Ahora introducimos otros conceptos fundamentales dentro de la programación orientada a objetos.
Clases
Una clase es un molde o fábrica de objetos. En una clase se definen las propiedades y métodos que pueden tener un objeto. Se dice que un objeto es una instancia de una clase. Cuando se crea un objeto a partir de una clase, se definen los valores de las propiedades del objeto.
Propiedades
Las propiedades son características que distinguen un tipo de objeto de otro, pero que varían entre objetos. Por ejemplo, los objetos de tipo humano pueden tener distintos colores de cabello, pero la propiedad “color de cabello” es una que existe en todos los humanos (en los calvos esta propiedad valdría null).
Métodos
Los métodos son acciones o procedimientos que puede llevar a cabo un objeto. Por ejemplo, si un profesor fuera un objeto, un método del profesor sería “dar clase”.
Pilares de la POO
La programación orientada a objetos se fundamenta en 4 pilares. Es importante entender estos pilares, ya que la POO es el paradigma más utilizado dentro del desarrollo de software.
Abstracción
La abstracción se refiere a aislar las características de un objeto. Se trata de conceptualizar objetos y cuáles son sus características
Herencia
La herencia permite que una clase herede propiedades y métodos de otra clase. Por ejemplo, la clase “perro” hereda de la clase “animal”. En este caso diríamos que la clase “perro” es hija de la clase “animal”.
Encapsulamiento
El encapsulamiento ayuda a aislar parte del código de una instancia. Esto permite que cuando sea llamada no altere su estado por accidente o por efecto colateral de los métodos o comportamientos de otros objetos con los que puede interactuar.
Polimorfismo
El polimorfismo significa que ante los mensajes o llamados que reciba una clase o una instancia los va a interpretar de una forma distinta a como lo harían clases o instancias distintas.
Ventajas y desventajas de la POO
Como cualquier paradigma de programación, la POO presenta varios pros y contras.
Ventajas
- Código reutilizable.
- Reducción de redundancia.
- Fácil de mantener.
- Seguridad (mediante métodos, propiedades y clases privadas/protegidas).
Desventajas
- Tamaño (cuando una clase es muy general y tiene muchas clases hijas)
- Esfuerzo (por la especificidad que requieren)
- Velocidad del desarrollo (por el esfuerzo)
Conclusión
La programación orientada a objetos es el paradigma más utilizado gracias a que permite reutilizar el código de una manera segura y fácil. Es fundamental entender los conceptos y pilares de la programación orientada a objetos.
Contribución creada por: Ciro Villafraz con los aportes de Aaron Quiroga.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?