PROGRAMACION ORIENTADO A OBJETOS
Clases y objetos serán para nosotros conceptos similares a tipos y variables. Es decir, la relación que existe entre un objeto y la clase a la que pertenece (la clase de la que es una instancia) es análoga a la que hay entre una variable y el tipo del que es declarada.
Una clase es un TAD con una característica añadida: permite la herencia.
Clase = TAD +herencia
Se define así un nuevo paradigma de programación, en el que podemos tener diferentes jerarquías y/o especializaciones, en forma de subclases y superclases, habilitando al mismo tiempo el polimorfismo.
El refinamiento progresivo usado hasta ahora era un refinamiento orientado al flujo de datos, que no favorece la reutilización de código. Con la programación orientada a objetos, en cambio,las clases más generales pueden servirnos siempre para nuevos usos que las requieran.
Los programas en P.O.O. manejan objetos que se comunican unos con otros mediante el intercambio de mensajes.
El diseño en P.O.O. no es ya, pues, top-down sino bottom-up; en lugar de ir de lo principal a lo específico se hace al contrario. De aquí la gran importancia de una correcta identificación de los objetosque vayan a participar en nuestro proyecto.
RESUMEN:
El concepto de Orientación a Objetos surge en torno a 1970 de mano de Alan Ray. Xerox PARC fue una de los primeros interesados en lo que se quería imponer como un nuevo paradigma de programación.
El primer lenguaje totalmente orientado a objetos fue Smalltalk, creado por Dyra- book. El único “fallo” que le fue achacado fue la falta de unainterface WIMP.
Parecía que esta nueva concepción iba a cercarse alrededor de la IA y sus redes semánti-cas (los objetos parecían adaptarse a sus directivas es parte de y es un) y marcos (frames).
No obstante, pronto los además lenguajes comenzaron a crear extensiones de sí mismos intentando incorporar las características que se definían fundamentales para la O.O.: B. Stroustrup, de loslaboratorios Bell, construyo´ a partir de C un lenguaje C con clases, que más tarde sería conocido como C++.
Pero no s´olo C tuvo su extensi´on, tambi´en Lisp, con CLOS (Common Lisp Object System) y muchos otros.
Tambi´en se crearon lenguajes totalmente orientados a objetos como Java, que in-corpor´o el hoy tan populares applets, el garbage collector y sobre todo su caracter´ıstica multiplataforma(bytecode).
Ahora mismo, est´a a punto de ver la luz la versio´n que Microsoft ha hecho del lenguaje Java, que se llamara´ C# (pronunciado C sharp). Este lenguaje compila el c´odigo fuente a un c´odigo interno (Intermediate Language, similar al bytecode) y posteriormente a c´odigo m´aquina.
Hoy en d´ıa los lenguajes O.O. tienen la supremac´ıa en el campo de la RAD (Rapid Application Development), conejemplos como Delphi, aunque algunos de los que se usan no cumplen todos los requisitos (p. ej. Visual Basic), que se consideran s´olo basados en objetos.
Diferencia entre lenguajes orientados a y basados en objetos
Los Lenguajes Basados en Objetos poseen una sintaxis y una sem´antica que per- miten la creaci´on de objetos, pero no poseen todas las caracter´ısticas necesarias para serconsiderados plenamente orientados a objetos. La caracter´ıstica m´as comu´nmente no- soportada suele ser la posibilidad de herencia (fallo de VB).
Dentro de los Lenguajes Orientados a Objetos se hace una distincio´n entre L.O.O. puros (como Smalltalk, Eiffel, Java,. . . ), que aunque por ser m´as abstractos son m´as f´aci- les de manejar pero m´as lentos, no permiten otra forma de hacer las cosas salvo lacorrecta, mientras que los llamados L.O.O. h´ıbridos (C++, Object Pascal, CLOS, Prolog++,. . . ) mezclan la O.O. con otro paradigma (programacio´n estructurada / funcional / l´ogica,. . . ) y a pesar de poder ser m´as f´aciles de aprender, si se conocen aqu´ellos de los que derivan, proclamarse m´as r´apidos y eficientes, y ofrecer otro tipo de soluciones cuando la O.O. no es lo m´as adecuado,...
Regístrate para leer el documento completo.