Programación Orientada a Objetos

En los inicios de la programación, los programas eran estructurados de manera lineal y leídos estrictamente de arriba hacia abajo, como si todo fuese surgiendo del mismo rollo de hilo. Esto en un principio no tiene porqué ser malo ya que hay programas simples que pueden desarrollarse perfectamente mediante este paradigma, pero la cuestión se complica al momento de diseñar programas más complejos, que requieren de una gran diversidad de elementos y eventos a tratar. Ante este problema es que nace la Programación Orientada a Objetos (POO). Este es, actualmente, el paradigma de la programación más utilizado en el mundo, pero a la vez, el más complicado de entender.

La Programación Orientada a Objetos es un paradigma de programación basado en los conceptos de clase y objeto. En esta lógica, puede ser considerado un objeto, literalmente, cualquier pieza del sistema, desde botones, barras de desplazamiento y menús, hasta cosas abstractas como un usuario o un evento. Por otro lado, se conoce como clase a la plantilla de la cual surgen objetos que comparten características y comportamientos. Todo el software se ejecuta haciendo que los objetos interactúen entre sí para crear un sistema.

Clases, objetos e instancias

Pasando en limpio, podemos decir que desarrollar un programa orientado a objetos consiste en definir clases y crear objetos a partir de las mismas. Recordemos que las clases forman el modelo a partir del cual se estructuran los datos y los comportamientos; es una plantilla que define de manera genérica cómo serán los objetos de un determinado tipo. Por ejemplo, podríamos crear una clase "Persona", la cual tendría una serie de atributos como "nombre", "edad", "trabajo", etc. y una serie de comportamientos, como "trabajar", "dormir", "comer", "caminar", etc. que se representarían como métodos o funcionalidades.

La Programación Orientada a Objetos se apoya sobre cuatro pilares o conceptos fundamentales que desarrollaremos más adelante:

Siguiendo el ejemplo antes planteado, podríamos instanciar la clase 'Persona', definiendo a "Paco" (nombre), un hombre de 25 (edad) años de edad, que trabaja de cajero (trabajo) en el Carrefour.

class Persona{
String nombre;
int edad;
String trabajo
...
}

...
paco=Persona(nombre="Paco", edad=25, trabajo="cajero");

También podríamos mandar a Paco a trabajar o mandarlo a dormir según la hora que sea.

...
paco.trabajar();

if(hora>=22){
paco.dormir();
}
...

Claro que la sintaxis de arriva es un tanto simplificada, pero a fines de entender la lógica de la Programación Orientada a Objetos, es suficiente. Si te interesa conocer más acerca de este paradigma de programación y tener una explicación más detallada y extendida del tema, te invito a mirar el siguiente video: