Para entender mejor la filosofía de orientación a objetos veamos algunas características que la diferencian de las técnicas de programación tradicional.
En la Programación Estructurada, el programa estaba compuesto por un conjunto de datos y funciones "globales". El término global significaba que eran accesibles por todo el programa, pudiendo ser llamados en cualquier ubicación de la aplicación. Dentro de las funciones se situaban las instrucciones del programa que manipulaban los datos. Funciones y datos se encontraban separados y totalmente independientes. Esto ocasionaba dos problemas principales:
- Los programas se creaban y estructuraban de acuerdo con la arquitectura de la computadora donde se tenían que ejecutar.
- Al estar separados los datos de las funciones, éstos eran visibles en toda la aplicación. Ello ocasionaba que cualquier modificación en los datos podía requerir la modificación en todas las funciones del programa, en correspondencia con los cambios en los datos.
En la Programación Orientada a Objetos la situación es diferente. La utilización de objetos permite un mayor nivel de abstracción que con la Programación Estructurada, y ofrece las siguientes diferencias con respecto a ésta:
- El programador organiza su programa en objetos, que son representaciones del mundo real que están más cercanas a la forma de pensar de la gente.
- Los datos, junto con las funciones que los manipulan, son parte interna de los objetos y no están accesibles al resto de los objetos. Por tanto, los cambios en los datos de un objeto sólo afectan a las funciones definidas para ese objeto, pero no al resto de la aplicación.
Todos los programas escritos bajo el paradigma orientado a Objetos se pueden escribir igualmente mediante la Programación Estructurada. Sin embargo, la Programación Orientada a Objetos es la que mayor facilidad presenta para el desarrollo de programas basados en interfaces gráficas de usuario.
Entorno visual sencillo que ofrecen los programas para permitir la comunicación de los usuarios con la aplicación en sí, o con el sistema operativo.