Definición ABC » Tecnología » Programación Orientada a Objetos

+

Programación Orientada a Objetos - Definición, Concepto y Qué es

Además de lenguajes de programación, existen diversas formas o filosofías de encarar el diseño de un programa de software, formas que se plasman en los distintos lenguajes, lo cuales las abrazan para satisfacer los requisitos de un tipo determinado de tareas o de un colectivo de programadores. Una de estas filosofías es la orientación a objetos.

La programación orientada a objetos consiste en considerar como “objetos” los sujetos de interés del programa, cada tipo de elemento diferente es definido con sus datos y los métodos de tratamiento de estos.

Esto permite, básicamente, tratar estos objetos como un tipo de datos más, sobre los cuales aplicar métodos y crear construcciones que realizarán cálculos y manipulaciones. Estos nuevos tipos de datos se construyen a partir de los tipos básicos que incluye el lenguaje de programación, y las operaciones se declaran como procedimientos o funciones.

Una característica notable que permite este modelo de desarrollo es la llamada “herencia”, que consiste en crear nuevos objetos a partir de los anteriores, modificando o ampliando tanto sus atributos como los métodos a ejercer sobre ellos.

Pese a que la programación orientada a objetos ha ido ganando popularidad en el mundo de la programación a partir de finales de la década de los 80 y principios de los 90, lo cierto es que su creación se remonta bastante más atrás, a finales de los años 60.

El detonante del éxito de la programación orientada a objetos fue, en gran medida, la popularización de los entornos gráficos de usuario como Windows, ya que el paradigma facilita en gran medida la creación de recursos gráficos, derivarlos en otros recursos similares (mediante la antes comentada herencia), y trabajar con métodos que responden a las acciones de los usuarios sobre los elementos.

A partir de aquí, se convirtió en el paradigma dominante, siendo el que utilizaban un mayor número de lenguajes, y el de mayor éxito entre los programadores, una situación que se ha prolongado en el tiempo hasta el día de hoy.

Las diferentes tipologías de objeto deben ser declaradas como clase en un punto inicial del programa antes de poder instanciar objetos que pertenezcan a dicha clase.

De esta forma se estructura el programa de una forma comprensible para alguien que lo examine desde fuera, al seguir una secuencia lógica.

Para hacer comprensibles estos conceptos, pongamos un ejemplo: un programa de administración de personal en una empresa.

Una clase podría ser la de trabajador, con atributos como el nombre, apellidos, número de la seguridad social, cargo, sueldo, etc. Cada objeto instanciado sería un trabajador distinto. Por ejemplo, podríamos crear una lista por cada departamento, o una lista global de trabajadores, dependiendo de la forma de gestionar y de pensar el programa.

Los métodos a aplicar sobre esta clase podrían ser varios, como “aumento de sueldo”, que multiplicaría el salaria por un porcentaje determinado, o asignar días de vacaciones, que insertaría marcas de vacaciones en el calendario de cada trabajador, las cuales diferirán entre trabajadores para poder disfrutar de turnos.

Esta clase podría dar lugar, mediante herencia, a una nueva clase llamada “becarios”, la cual no tuviera un atributo como es el de sueldo, pero sí uno o varios referidos a la formación, ya que el estatus legal de los becarios podría obligar a la empresa a formarlos.

A lo largo de los años, han surgido muchos lenguajes de programación que abrazan abiertamente el paradigma de orientación a objetos como forma de trabajo.

El lenguaje más conocido es tal vez el C++, que dota al tradicional C de una pátina de orientación a objetos.

Sin embargo, existen otros lenguajes, también muy conocidos, que siguen el mismo paradigma de orientación a objetos, como es el caso de Java, Visual Basic .NET (desarrollado por Microsoft), Objective-C (utilizado sobretodo en los sistemas de Apple), y lenguajes muy utilizados en aplicaciones de Internet como Ruby, Python, Perl o PHP.

Foto: Fotolia - RMS164 / Sentavio

 
 
 
Temas en Programación Orientada a Objetos
 

Redes Sociales