Programación orientada a objetos
La programación
orientada a objetos (POO, u OOP según sus
siglas en inglés) es un paradigma de
programación que usa objetos en
sus interacciones, para diseñar aplicaciones y programas
informáticos.
Está
basada en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
Su
uso se popularizó a principios de la década de 1990. En la actualidad, existe
una gran variedad de lenguajes de
programación que soportan la orientación a objetos.
Introducción
Los
objetos son entidades que tienen un determinado "estado",
"comportamiento (método)" e "identidad":
·
La identidad es
una propiedad de un objeto que lo diferencia del resto; dicho con otras
palabras, es su identificador (concepto análogo al de identificador de
una variable o
una constante).
Un
objeto contiene toda la información que permite definirlo e identificarlo
frente a otros objetos pertenecientes a otras clases e incluso frente a objetos
de una misma clase, al poder tener valores bien diferenciados en sus atributos.
A su vez, los objetos disponen de mecanismos de interacción llamados métodos,
que favorecen la comunicación entre ellos. Esta comunicación favorece a su vez
el cambio de estado en los propios objetos. Esta característica lleva a
tratarlos como unidades indivisibles, en las que no se separa el estado y el
comportamiento.
Los métodos (comportamiento)
y atributos (estado) están estrechamente relacionados por la
propiedad de conjunto. Esta propiedad destaca que una clase requiere de métodos
para poder tratar los atributos con los que cuenta. El programador debe pensar
indistintamente en ambos conceptos, sin separar ni darle mayor importancia a
alguno de ellos. Hacerlo podría producir el hábito erróneo de crear clases
contenedoras de información por un lado y clases con métodos que manejen a las
primeras por el otro. De esta manera se estaría realizando una "programación
estructurada camuflada" en un lenguaje de POO.
La
programación orientada a objetos difiere de la programación
estructurada tradicional, en la que los datos y los procedimientos
están separados y sin relación, ya que lo único que se busca es el
procesamiento de unos datos de entrada para obtener otros de salida. La
programación estructurada anima al programador a pensar sobre todo en términos
de procedimientos o funciones, y en segundo lugar en las estructuras de datos
que esos procedimientos manejan. En la programación estructurada solo se
escriben funciones que procesan datos. Los programadores que emplean POO, en
cambio, primero definen objetos para luego enviarles mensajes solicitándoles
que realicen sus métodos por sí mismos.
Origen
Los
conceptos de la POO tienen origen en Simula, un lenguaje diseñado para hacer
simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard, del Centro de Cómputo
Noruego en Oslo. En este centro se trabajaba en
simulaciones de naves, que fueron confundidas por la explosión combinatoria de
cómo las diversas cualidades de diferentes naves podían afectar unas a las
otras. La idea surgió al agrupar los diversos tipos de naves en diversas clases
de objetos, siendo responsable cada clase de objetos de definir sus
"propios" datos y comportamientos. 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.
La
POO se fue convirtiendo en el estilo de programación dominante a mediados de
los años 1980, en gran
parte debido a la influencia de C++, una extensión del lenguaje de
programación C. Su dominación fue consolidada gracias al auge de
las interfaces
gráficas de usuario, para las cuales la POO está particularmente
bien adaptada. En este caso, se habla también de programación
dirigida por eventos.
Algunos lenguajes orientados a objetos
Simula (1967) es aceptado como el primer lenguaje que posee las características
principales de un lenguaje orientado a objetos. Fue creado para hacer programas
de simulación, en donde los "objetos" son la representación de la
información más importante.
Smalltalk (1972 a 1980) es posiblemente el ejemplo canónico, y con el que gran
parte de la teoría de la programación orientada a objetos se ha desarrollado.
Entre los lenguajes orientados a objetos se destacan
los siguientes:
·
ABAP
·
C++
·
C Sharp (C#)
·
Java
·
JavaScript
·
Lexico
·
VB.NET
·
Visual FoxPro
·
Visual Basic 6.0
·
Visual
DataFlex
·
Visual
Objects
·
XBase++
No hay comentarios:
Publicar un comentario