La Programacin Orientada a Objetos es un paradigma de programacin diferente a la
Programacin Estructurada o a la misma Programacin Procedural al que la mayora de los programadores estn acostumbrados a utilizar. En la Programacin Estructurada y la Programacin Procedural lo mas importante es el procedimiento que se esta desarrollando a travs de un lenguaje de programacin. En Programacin Orientada a Objetos! se "ace un gran nfasis a los datos! y todo gira alrededor de ellos. #ada vez que alguien quiere "acer una aplicacin! debe de pensar en los elementos $datos% que va a utilizar para programar! y la relacin que e&iste entre estos datos! en su forma de interactuar entre si. #uando queremos "acer una aplicacin de alumnos que estan inscritos en algunas materias con ciertos profesores! entonces debemos de pensar en los diferentes datos a manejar' (lumnos! )aterias! Profesores! etc. Pensar en estos elementos y pensar en todo lo que esta alrededor de ellos para poder tipificarlos en los elementos que definen la Programacin Orientada a Objetos. El mundo esta lleno de objetos y estos objetos tienen ciertas caractersticas que los "acen *nicos y esas caractersticas se derivan de atributos que agrupadas representan a una clase que compone a los objetos definidos. +ava es un lenguaje que nos ayuda a entender muc"o mejor el paradigma Orientado a Objetos de una manera mas sencilla y natural. Antecedentes del Lenguaje Java +ava se cre como parte de un proyecto de investigacin para el desarrollo de soft,are avanzado para una amplia variedad de dispositivos de red y sistemas embebidos. La meta era dise-ar una plataforma operativa sencilla! segura! portable! distribuida y de tiempo real. #uando se inici el proyecto! #.. era el lenguaje del momento. Pero a lo largo del tiempo! las dificultades encontradas con #.. crecieron "asta el punto en que se pens que los problemas podran resolverse mejor creando una plataforma de lenguaje completamente nueva. /e "izo uso de la arquitectura y dise-o de una amplia variedad de lenguajes como Eiffel! /mall0al1! Objetive # y #edar2)esa. El resultado es un lenguaje que se "a mostrado ideal para desarrollar aplicaciones de usuario final seguras! distribuidas y basadas en red en un 3. 3ntroduccin a la programacin orientada a objetos y al lenguaje +(4( amplio rango de entornos desde los dispositivos de red embebidos "asta su uso para soluciones en 3nternet. Caractersticas en el Diseo de Java 5 Sencillo, orientado a objetos y amiliar' /encillo! para que no requiera grandes esfuerzos de entrenamiento para los desarrolladores. Orientado a objetos! porque la tecnologa de objetos se considera madura y es el enfoque ms adecuado para las necesidades de los sistemas distribuidos y2o cliente2servidor. 6amiliar! porque aunque se rec"az #..! se mantuvo +ava lo ms parecido posible a #..! eliminando sus complejidades innecesarias! para facilitar la migracin al nuevo lenguaje. 5 !obusto y seguro' 7obusto! simplificando la administracin de memoria y eliminando las complejidades del uso de apuntadores y aritmtica de apuntadores del #. /eguro para que pueda operar en un entorno de red. 5 "nde#endiente de la ar$uitertura y #ortable' +ava est dise-ado para soportar aplicaciones que sern instaladas en un entorno de red "eterogneo! con "ard,are y sistemas operativos diversos. Para "acer esto posible el compilador +ava genera un cdigo llamado 8bytecodes8 o com*nmente conocido como cdigo byte! un formato de cdigo independiente de la plataforma dise-ado para transportar cdigo eficientemente a travs de m*ltiples plataformas de "ard,are y soft,are. Es adems portable en el sentido de que es rigurosamente el mismo lenguaje en todas las plataformas. El 8bytecode8 es traducido a cdigo mquina y ejecutado por la +ava 4irtual )ac"ine! que es la implementacin +ava para cada plataforma "ard,are5soft,are concreta. 5 Alto rendimiento' ( pesar de ser interpretado! +ava tiene en cuenta el rendimiento! y particularmente en las *ltimas versiones dispone de diversas "erramientas para su optimizacin. #uando se necesitan capacidades de proceso intensivas! pueden usarse llamadas a cdigo nativo. 5 "nter#retado, multi%&ilo y din'mico' El intrprete +ava puede ejecutar codigo byte en cualquier mquina que disponga de una )quina 4irtual +ava $+4)%. (dems +ava incorpora capacidades avanzadas de ejecucin multi5"ilo $ejecucin simultnea de ms de un flujo de programa% y proporciona mecanismos de carga dinmica de clases en tiempo de ejecucin. Caractersticas del Lenguaje Lenguaje de propsito general. Lenguaje Orientado a Objetos. /inta&is inspirada en la de #2#... Lenguaje multiplataforma' Los programas +ava se ejecutan sin variacin $sin recompilar% en cualquier plataforma soportada $9indo,s! :;3<! )ac! etc.% Lenguaje interpretado' El intrprete a cdigo mquina $dependiente de la plataforma% se llama +ava 4irtual )ac"ine $+4)%. El compilador produce un cdigo intermedio independiente del sistema denominado bytecode cdigo byte. Lenguaje gratuito' #reado por /:; )icrosystems! que distribuye gratuitamente el producto base! denominado +=> $+ava =evelopment 0ool1it% o actualmente +?/E $+ava ? /tandard Edition%. (P3 distribuida con el +?/E muy amplia. #digo fuente de la (P3 disponible. (acilidades del J)S* +Java ) *st'ndar *dition, @erramientas para generar programas +ava. #ompilador! depurador! "erramienta para documentacin! etc. La +4)! necesaria para ejecutar programas +ava. La (P3 de +ava $jerarqua de clases%. #digo fuente de la (P3 $Opcional%. =ocumentacin. Java !untime *nvironment +J!*, +7E es el entorno mnimo para ejecutar programas +ava ?. 3ncluye la +4) y la (P3. Est incluida en el +?/E aunque puede descargarse e instalarse separadamente. En aquellos sistemas donde se vayan a ejecutar programas +ava! pero no compilarlos! el +7E es suficiente. El +7E incluye el +ava Plug5in! que es el 8a-adido8 que necesitan lo navegadores $E&plorer o ;etscape% para poder ejecutar programas +ava ?. Es decir que instalando el +7E se tiene soporte completo +ava ?! tanto para aplicaciones normales $denominadas 8standalone8% como para (pplets $programas +ava que se ejecutan en una pgina 9eb! cuando esta es accedida desde un navegador%.