En este artículo hablaremos de la técnica de programación orientada a objetos desde un punto de vista genérico y que puede ser aplicado a cualquiera de los lenguajes de programación que soportan esta metodología. Grady Booch, autor del metodo de diseño orientado a objetos, define la Programación Orientada a Objetos (POO) como:
“Un método de implementación en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representan una instancia de alguna clase, y cuyas clases son todas miembros de una jerarquía de clases unidas mediante relaciones de herencia”
Programación Orientada a Objetos
Existen tres partes importantes en la definición de POO:
- Utiliza objetos, no algorítmicos, como bloques de construcción lógicos.
- Cada objeto es una instancia de una clase
- Las clases se relacionan unas con otras por medio de relaciones de herencia
Un programa puede parecer orientado a objetos, pero si cualquiera de los elementos anteriores no existe, no es un programa orientado a objetos. Específicamente, la programación sin herencia es distinta de la programación orientada a objetos; ésta se denomina programación con tipos abstractos de datos o programación basada en objetos.
El concepto de objeto, al igual que los tipos abstractos de datos o tipos definidos por el usuario, es una colección de elementos de datos junto con las funciones asociadas para operar con esos datos. Sin embargo, la potencia real de los objetos reside en el modo en el que los objetos pueden definir otros objetos. Este proceso de denomina herencia, y es el mecanismo que ayuda a construir programas que se modifican fácilmente y se adaptan a aplicaciones totalmente distintas.
Los conceptos fundamentales de programación orientada a objetos son: objetos, clases, herencia, mensajes y polimorfismo. Todos estos conceptos serán desarrollados en posteriores artículos.
Hasta aquí la introducción a la programación orientada a objetos. Si eres un programador con experiencia tal vez este artículo te ayude a aclarar algunos conceptos. Por el contrario, si no tienes experiencia con esta metodología, te servirá como pequeña introducción teórica a este apasionante mundo de la programación. Nos leemos en el próximo artículo donde hablaremos de objetos.
Adios, os!