Definición
Este tipo de programación es un paradigma de la programación que tienen como principal objetivo el poder recolectar una serie de objetos los cuales a su vez están interrelacionados con el objetivo de poder llegar a resolver un problema.
Características la programación orientada a objetos
Entre las principales características que se distinguen en la programación de objetos se mencionan las siguientes:
- Tiene abstracción, en otras palabras, puede denotar las características principales de un objeto y capturar el comportamiento de los mismos.
- Puede reunir los elementos que considere pertinentes con respecto a una misma entidad y que tienen un mismo nivel de abstracción, a ésta característica se le conoce como encapsulamiento.
- Funciona bajo el principio de ocultación, el cual dice que cada uno de los objetos se encuentra aislado del exterior dentro de un módulo natural.
- Tiene polimorfismo, esto quiere decir, diferentes tipos de comportamientos en los objetos.
- Los objetos pueden heredar las propiedades y los comportamientos de las clases a las cuales pertenecen.
Origen
El origen de la programación de objetos se encuentra en Simula 67, un tipo de lenguaje que fue diseñado en su momento para poder hacer simulaciones. Éste lenguaje fue creado por Ole-Johan Dahl y Kristen Nygaar, quienes desempeñaban funciones en el Centro de Cómputo Noruego localizado en la ciudad de Oslo.
Historia
La historia inicia con la investigación realizada por Kirsten Nygaar quien tenía varios problemas relacionados con el desarrollo de las simulaciones de los sistemas físicos para poder simular la forma en la que funciona y rinde un motor. Fue entonces cuando se pensó en diseñar un programa paralelo al objeto físico, partiendo de éste, se lograba una correspondencia entre el sistema físico e informático.
Fue a partir de esta idea que se logró llegar a desarrollar un tipo de lenguaje de programación que contenía varios conceptos pilares, la programación orientada a objetos. A este programa se le conoció como SIMULA 67.
Para qué sirve la programación orientada a objetos
La programación orientada a objetos es un tipo de programación que sirve para poder utilizar objetos en todas sus interacciones para luego poder diseñar diferentes tipos de aplicaciones y de programas de informática.
Tipos
En cuanto a los tipos, éstos se basan en las diferentes clases de datos que entran en función en este tipo de programación. Éstos representan un grupo de valores que tienen un significado igual. Uno de ellos se conoce como tipo estático, en donde los datos son expresados utilizando tiempos de compilación. Un segundo tipo es llamado dinámico en el cual las comprobaciones pueden ser realizadas en tiempo real de ejecución.
Conceptos
Los conceptos en los cuales se basa la programación orientada a objetos son los siguientes:
- Clase: es un tipo de plantilla en la cual se pueden definir los atributos y los métodos que tiene un determinado objeto.
- Herencia: hace posible que los programadores puedan crear una clase primero y luego, crear más clases especializadas que utilicen el mismo código que usa la clase general.
- Objeto: es un tipo de entidad que cuenta con propiedades (datos) y con un comportamiento (métodos).
- Atributos: son todas las características que posee una clase determinada.
- Propiedades: son llamados también atributos y son los tipos de datos que están relacionados con un objeto.
Cómo funciona
Funciona separando los diferentes componentes que tiene un programa para lograr simplificar su elaboración y posteriormente mejorarlo. Se crea una integración de los objetos y los datos que están relacionados con los objetos. A éstos objetos se les otorga varias características en la vida real y cada una de las partes del programa se trata como un objeto haciendo que las partes sean independientes unas con otras.
Ventajas
Son varias las ventajas que pueden ser obtenidas gracias a la programación orientada a objetos. Entre ellas cabe mencionar:
- Tiene modificabilidad lo que hace posible agregar, cambiar o eliminar objetos nuevos o funciones y esto facilita actualizar los programas.
- Gestión de errores, cuando la programación orientada a objetos es utilizada resulta más sencillo encontrar el momento en el que se produce algún error.
- Es más sencillo realizar trabajo en grupo gracias al encapsulamiento que este tipo de programación tiene.
- Se puede crear un clase y posteriormente compartir las propiedades de la misma con otras subclases, en otras palabras, tiene herencia.
- Con este programa se puede reducir de forma considerable los costos en la programación.
- Se puede crear un marco adecuado que hace más fácil la creación de una interfaz gráfica.
- Puede acoplarse muy bien con las bases de datos.
Desventajas
Algunas de sus desventajas se mencionan a continuación:
- Puede ser que los programas orientados a objetos sean un poco más lentos.
- No tienen la capacidad de poder ser cambiados por completo.
- Todos los objetos que participan necesitan de una gran cantidad de documentación y, como los objetos son abstractos, puede presentarse el problema que no coincidan con la visión que tienen dos programadores distintos.
- Cuando se fuerza el lenguaje que se utiliza en la programación orientada a objetos puede presentarse la pérdida de algunas de las características que poseen los lenguajes útiles.
- Es posible que el programador no conozca algunas de las características que tiene el paradigma.
- Tampoco existe una forma estándar para la solución de problemas lo que puede ocasionar que se den diferentes tipos de interpretaciones relacionados con la solución que se plantea.
Importancia
La programación orientada a objetos es importante debido a que por medio de ella se puede facilitar la creación de diferentes tipos de software proporcionando al mismo tiempo calidad, potencia, un buen mantenimiento y reutilización. Además, ha producido un gran impacto en el mundo y la revolución tecnológica en la sociedad pues gracias a ella se han creado algunos de los lenguajes de programación más relevantes en el mundo.
Alternativas a la programación orientada a objetos
Una de las alternativas que pueden ser utilizada ante la programación orientada a objetos es la programación funcional, un tipo de paradigma de programación bastante popular principalmente en el campo académico. Este tipo de paradigma cuenta con un buen flujo de control y dos ejemplos de ella son Haskell y Estándar M.
Otra opción, que de hecho era muy utilizada anteriormente, se conoce como procedimiento de procesamiento y fue importante para crear diferentes tipos de aplicaciones y varios tipos de sistemas operativos.
Ejemplos de lenguajes de programación orientada a objetos
Es importante mencionar que los lenguajes de programación deben de seguir y cumplir requisitos importantes como por ejemplo poder soportar objetos, tener una clase asociada y heredar atributos. Algunos ejemplos de lenguajes en este tipo de programación son los siguientes:
- C++, Objective C, considerado como el principal tipo de lenguaje para la programación de objetos.
- Java.
- Ruby.
- Visual C Sharp.
- Smalltalk.
- Python.





