En un post anterior hablamos sobre la programación orientada a objetos (POO). También explicamos que este paradigma nos permite representar cualquier entidad con la que trabajemos como un objeto real. En esta oportunidad mostraremos las características de la POO y las ventajas que posee en el ámbito del desarrollo de programas.
Características de la POO
Para empezar, volvamos al ejemplo del objeto perro que presentamos en el post anterior. Para identificarlo, démosle el nombre de Nipi (ni pinta de perro tiene). Todos los perros comparten similares características (por ejemplo, la cantidad de patas y de ojos) y pueden llevar a cabo las mismas acciones (ladrar y mover la cola, por ejemplo). Ahora pensemos en Nipi, el cual tendrá una raza, edad, y altura propias y quizás pueda realizar una acción característica (como hacer piruetas), además de las propiedades y acciones comunes a todos los perros. De esta manera,
Nipi es una representación particular de la clase perros. En el ámbito de la programación, una clase se puede pensar como una plantilla que posee los métodos y las propiedades de un tipo particular de objeto.
Además de propiedades y de métodos, una clase también posee eventos que describen qué debe suceder cuando se lleva a cabo una acción. La clase perros, por ejemplo, puede incluir el evento de «ladrar cuando se acerca otro perro«. Si consideráramos a un auto como un objeto, un evento podría ser «encender las luces cuando se pone en marcha«. De esta manera vemos que métodos y eventos están relacionados entre sí.
Un objeto que representa una clase hereda las propiedades, métodos, y eventos de la clase. Otra analogía útil para comprender la relación entre una clase y un objeto es pensar a la primera como el plano en papel de un edificio y al segundo como el edificio, la implementación en sí del plano.
En el siguiente video podemos ver un resumen muy útil sobre la programación orientada a objetos:
Próximamente compartiremos más posts sobre la POO utilizando Python. ¡No olviden suscribirse al blog para no perder detalle!