Programación orientada a objetos

Algunas características clave de la programación orientada a objetos son herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.

Fueron refinados más tarde en Smalltalk, desarrollado en Simula en Xerox PARC (cuya primera versión fue escrita sobre Basic), pero diseñado para ser un sistema completamente dinámico en el cual los objetos se podrían crear y modificar "sobre la marcha" (en tiempo de ejecución) en lugar de tener un sistema basado en programas estáticos.

Para saltar este obstáculo, se hicieron muchas tentativas para crear nuevos lenguajes basados en métodos orientados a objetos, pero permitiendo algunas características imperativas de maneras "seguras".

Ya en 1960 en el entorno del grupo de inteligencia artificial, el término "objeto" era usado para referirse a elementos (LISP atomos) con propiedades (atributos).

Existe un acuerdo acerca de qué características contempla la "orientación a objetos".

[10]​[11]​ La POO es un paradigma surgido en los años 1970, que utiliza objetos como elementos fundamentales en la construcción de la solución.

Todas las propiedades y métodos comunes a los objetos se encapsulan o agrupan en clases.

Al igual que C++, otros lenguajes, como OOCOBOL, OOLisp, OOProlog y Object REXX, han sido creados añadiendo extensiones orientadas a objetos a un lenguaje de programación clásico.

Aunque es todavía una metodología en estado de maduración, cada vez atrae a más investigadores e incluso proyectos comerciales en todo el mundo.

UML Notación para una clase. Esta clase Botón tiene variables para datos y funciones . Mediante herencia se puede crear una subclase como subconjunto de la clase Botón. Los objetos son instancias de una clase.