Está en la página 1de 4

TEMA 1-B. PROGRAMACIN ORIENTADA A OBJETOS PROF.

ELIECER ESPINOSA INTRODUCCIN Hoy por hoy una de las reas ms candentes en la industria y en el mbito acadmico es la orientacin a objetos. La orientacin a objetos promete mejoras de amplio alcance en la forma de diseo, desarrollo y mantenimiento del software ofreciendo una solucin a largo plazo a los problemas y preocupaciones que han existido desde el comienzo en el desarrollo de software: la falta de portabilidad del cdigo y reusabilidad, cdigo que es difcil de modificar, ciclos de desarrollo largos y tcnicas de codificacin no intuitivas. DEFINICIN PROGRAMACIN ORIENTADA A OBJETOS O POO La programacin orientada a objetos o POO (OOP segn sus siglas en ingls) es un paradigma de programacin que usa los objetos en sus interacciones, para disear aplicaciones y programas informticos. Est basado en varias tcnicas, incluyendo herencia, cohesin, abstraccin, polimorfismo, acoplamiento y encapsulamiento. Los conceptos de la programacin orientada a objetos tienen origen en Simula 67, un lenguaje diseado para hacer simulaciones, creado por OleJohan Dahl y Kristen Nygaard, del Centro de Cmputo Noruego en Oslo. En este centro se trabajaba en simulaciones de naves, que fueron confundidas por la explosin combinatoria de cmo las diversas cualidades de diferentes naves podan 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 ms tarde en Smalltalk, desarrollado en Simula en Xerox PARC (cuya primera versin fue escrita sobre Basic) pero diseado para ser un sistema completamente dinmico en el cual los objetos se podran crear y modificar "sobre la marcha" (en tiempo de ejecucin) en lugar de tener un sistema basado en programas estticos. ELEMENTO FUNDAMENTAL DE LA OOP El elemento fundamental de la OOP es, como su nombre lo indica, el objeto. Lo podemos definir como un conjunto complejo de datos y programas que poseen estructura y forman parte de una organizacin. Los objetos son entidades que tienen un determinado estado, comportamiento (mtodo) e identidad: El estado est compuesto de datos o informaciones; sern uno o varios atributos a los que se habrn asignado unos valores concretos (datos). El comportamiento est definido por los mtodos o mensajes a los que sabe responder dicho objeto, es decir, qu operaciones se pueden realizar con l. La identidad es una propiedad de un objeto que lo diferencia del resto; dicho con otras palabras, es su identificador (concepto anlogo al de identificador de una variable o una constante).

PROGRAMACIN DE COMPUTADORAS 12

Pgina 1

TEMA 1-B. PROGRAMACIN ORIENTADA A OBJETOS PROF. ELIECER ESPINOSA ESTRUCTURA DE UN OBJETO Un objeto puede considerarse como una especie de cpsula dividida en tres partes: 1 - RELACIONES 2 - PROPIEDADES 3 - METODOS Cada uno de estos componentes desempea un papel totalmente independiente: Las relaciones permiten que el objeto se inserte en la organizacin y estn formadas esencialmente por punteros a otros objetos. Las propiedades distinguen un objeto determinado de los restantes que forman parte de la misma organizacin y tiene valores que dependen de la propiedad de que se trate. Las propiedades de un objeto pueden ser heredadas a sus descendientes en la organizacin. Los mtodos son las operaciones que pueden realizarse sobre el objeto, que normalmente estarn incorporados en forma de programas (cdigo) que el objeto es capaz de ejecutar y que tambin pone a disposicin de sus descendientes a travs de la herencia. CARACTERISTICAS DE P.O.O Entre las caractersticas bsicas de la POO podemos sealar: Abstraccin: Consiste en la generalizacin conceptual de un determinado conjunto de objetos y de sus atributos y propiedades, dejando en un segundo trmino los detalles concretos de cada objeto. Qu se consigue con la abstraccin? Bueno, bsicamente pasar del plano material (cosas que se tocan) al plano mental (cosas que se piensan). Encapsulacin: Se refiere a la capacidad de agrupar y condensar en un entorno con lmites bien definidos distintos elementos. Cuando hablemos de encapsulacin en general siempre nos referiremos, pues, a encapsulacin abstracta. Herencia: Se aplica sobre las clases. O sea, de alguna forma las clases pueden tener descendencia, y sta heredar algunas caractersticas de las clases padres. Si disponemos las clases con un formato de rbol genealgico, tenderemos lo que se denomina una estructura jerarquizada de clases. Polimorfismo: Esta propiedad, como su mismo nombre sugiere mltiples formas, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a travs del mismo interfaz. O sea, que, en la prctica, un mismo identificador puede tener distintas formas (distintos cuerpos de funcin, distintos comportamientos) dependiendo, en general, del contexto en el que se halle inserto.

Otras caractersticas que se pueden ser: Modularidad: Se denomina modularidad a la propiedad que permite subdividir una aplicacin en partes ms pequeas (llamadas mdulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicacin en s y de las restantes partes. Estos

PROGRAMACIN DE COMPUTADORAS 12

Pgina 2

TEMA 1-B. PROGRAMACIN ORIENTADA A OBJETOS PROF. ELIECER ESPINOSA mdulos se pueden compilar por separado, pero tienen conexiones con otros mdulos. Al igual que la encapsulacin, los lenguajes soportan la modularidad de diversas formas. Principio de ocultacin: Cada objeto est aislado del exterior, es un mdulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especfica cmo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificacin por quien no tenga derecho a acceder a ellas; solamente los propios mtodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el estado interno de un objeto de manera inesperada, eliminando efectos secundarios e interacciones inesperadas. Recoleccin de basura: Es la tcnica por la cual el entorno de objetos se encarga de destruir automticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignacin o liberacin de memoria, ya que el entorno la asignar al crear un nuevo objeto y la liberar cuando nadie lo est usando.

VENTAJAS Y DESVENTAJAS: Ventajas: - Datos separados del Diseo. - Reutilizacin del cdigo. -Entendimiento del programa en el mundo real. - Fcil entendimiento de la lgica del programa. - Cdigo simple. - Fcil documentacin y diseo del programa. - Dinamismo en el manejo de los datos. - Facilidad en el mantenimiento y expansin. Desventajas: - Complejidad para adaptarse. - Mayor cantidad de cdigo (aunque a la larga no, por la reutilizacin).

LENGUAJES ORIENTADOS A OBJETOS Simula (1967) es aceptado como el primer lenguaje que posee las caractersticas principales de un lenguaje orientado a objetos. Fue creado para hacer programas de simulacin, en donde los "objetos" son la representacin de la informacin ms importante. Smalltalk (1972 a 1980) es posiblemente el ejemplo cannico, y con el que gran parte de la teora de la programacin orientada a objetos se ha desarrollado. Entre los lenguajes orientados a objetos se destacan los siguientes: ABAP -> SAP Lenguaje orientado a eventos ABL Lenguaje de programacin de OpenEdge de Progress Software ActionScript Pgina 3

PROGRAMACIN DE COMPUTADORAS 12

ActionScript 3 Ada C++ C# Clarion Clipper1 D Object Pascal (Embarcadero Delphi) Gambas Genie Harbour

TEMA 1-B. PROGRAMACIN ORIENTADA A OBJETOS PROF. ELIECER ESPINOSA Eiffel Ruby Fortran 90/95 Self Java Smalltalk6 JavaScript2 Magik (SmallWorld) Lexico3 Vala Objective-C VB.NET Ocaml Visual FoxPro7 Oz Visual Basic 6.0 R Visual DataFlex Perl4 Visual Objects PHP5 XBase++ PowerBuilder Lenguaje DRP Scala8 Python

Muchos de estos lenguajes de programacin no son puramente orientados a objetos, sino que son hbridos que combinan la POO con otros paradigmas.

La programacin orientada a objetos es un paradigma surgido en los aos 70, que utiliza objetos como elementos fundamentales en la construccin de la solucin. Un objeto es una abstraccin de algn hecho o ente del mundo real, con atributos que representan sus caractersticas o propiedades, y mtodos que emulan su comportamiento o actividad. Todas las propiedades y mtodos comunes a los objetos se encapsulan o agrupan en clases. Una clase es una plantilla, un prototipo para crear objetos; en general, se dice que cada objeto es una instancia o ejemplar de una clase.

PROGRAMACIN DE COMPUTADORAS 12

Pgina 4

También podría gustarte