Tiempo atrás, el universo de los lenguajes de programación estaba reinado por el paradigma de la programación estructurada: rara vez se escuchaba nombrar un lenguaje que no fuera “C” en el contexto sociolaboral de un programador. Sin embargo, con el pasar de los años y el surgimiento de nuevos procesos de negocios, los programadores comenzaron a darse cuenta de que este modelo presentaba ciertas dificultades en torno a los problemas que sus desarrollos debían solucionar:
• Escalabilidad: las aplicaciones debían ser prácticamente rescritas cuando el programador
intentaba agregarle nuevas funcionalidades no planificadas en el momento
de su génesis.
• Dificultad: las aplicaciones terminaban formadas por miles y miles de funciones
que impedían una ágil y sencilla lectura del código fuente.
• Disgregación: falta de una lógica explícita que vinculara el accionar de los diferentes
módulos o funciones entre sí.
• Implementación: toda modificación en el código fuente requería, casi sin excepción,
expertos programadores que comprendieran “C” a la perfección.
• Actualización: demandaba muchas horas hombre la realización de pequeñas actualizaciones,
también conocidas como updates.
• Reutilización y transportabilidad: el código escrito para una aplicación rara vez
servía para ser aplicado en una segunda.
La programación orientada a objetos (OOP, siglas de Object Oriented Programming) surge para salvar todas estas problemáticas. OOP plantea el siguiente paradigma: el universo se encuentra repleto de objetos independientes que interactúan entre sí.
Cada objeto posee características propias y puede comportarse de tal o cual manera según sus condiciones físicas se lo permitan. En otros términos, cuando el programa dor desarrolla una aplicación, define sus propios objetos, describe su apariencia y las relaciones existentes entre sí. El accionar en conjunto de ellos es lo que permite la ejecución del programa y la consecuente solución de los distintos problemas.
Según el esquema estructural OOP, los objetos constan de tres partes fundamentales:
• Nombre: identificación única.
• Propiedades: características físicas y compositivas.
• Métodos: acciones/tareas capaces de realizar.
Un objeto mantiene sus características ajenas al mundo que lo rodea (“encapsulación”), lo que permite una total independencia de sus pares; cada objeto existe por sí sólo. Es a través de sus métodos, también denominados interfases, que se relaciona con el mundo exterior y lleva a cabo determinadas consignas