Presentado por: LUIS JAIME BENAVIDES COD. !."#$.#2% NADIA GABRIELA DUARTE MURCIA COD. $.&&.%!.2'# (ERN)N DAR*O GARC*A COD. $&.&$+.#&# MONICA LO,ANO RUI, COD. %2.!.2++ T-tor: CESAR JIMENE, UNIVERSIDAD NACIONAL ABIERTA . A DISTANCIA / UNAD / ESCUELA DE CIENCIAS BASICAS0 TECNOLOGIA E INGENIERIA ABRIL 2&$& INTRODUCCION Cuando una persona desarrolla una aplicacin en un lenguaje como C o C++, el archivo binario que genera el compilador y que contiene el cdigo que implementa dicha aplicacin, se puede ejecutar nicamente sobre la plataforma sobre la cual fue desarrollada, debido a que dicho cdigo es especifico a esa plataforma. La plataforma Java se encuentra por encima de otras plataformas. l cdigo que generan sus compiladores no es espec!fico de una maquina f!sica en particular, sino de una m"quina virtual. #n cuando e$isten mltiples implantaciones de la %"quina &irtual Java, cada una espec!fica de la plataforma sobre la cual subyace, e$iste una nica especificacin de la m"quina virtual, que proporciona una vista independiente del hard'are y del sistema operativo sobre el que se est( trabajando. )e esta manera un programador en Java *escribe su programa una ve+, y lo ejecuta donde sea. s precisamente la m"quina virtual Java la clave de la independencia de los programas Java, sobre el sistema operativo y el hard'are en que se ejecutan, ya que es la encargada de proporcionar la vista de un nivel de abstraccin superior, donde adem"s de la independencia de la plataforma antes mencionada, presenta un lenguaje de programacin simple, orientado a objetos, con verificacin estricta de tipos de datos, mltiples hilos, con ligado din"mico y con recoleccin autom"tica de basura. n efecto, Java es un lenguaje de programacin de ,un %icrosystems originalmente llamado *-a.*, que fue concebido bajo la direccin de James /osling y 0ill Joy, quienes pertenec!an a una subsidiaria de ,un, conocida como *1irst2erson 3nc*. -a. naci para programar peque4os dispositivos electrodom(sticos, como los asistentes personales digitales 2#)s 52ersonal )igital #ssistants6 y un poco m"s adelante se utili+ para ejecutar aplicaciones para televisores. 7inguno de estos productos tuvo ($ito comercial. /osling y Joy se quedaron con una tecnolog!a robusta, eficiente, orientada a objetos, independiente de la arquitectura, pero hasta ese momento, sin ninguna utilidad pr"ctica. 7o pas mucho tiempo, cuando en ,un se dieron cuenta de que todas estas caracter!sticas cubr!an a la perfeccin las necesidades de las aplicaciones de 3nternet. )e esta manera, con unos cuantos retoques, -a. se convirti en Java. # partir de esa estrategia, continuamos con uno de los cursos de mas relevancia no solo para la 3ngenier!a de ,istemas, sino adem"s para carreras profesionales tales como la lectrnica entre otras, que en sus planes de estudio e$ige para el perfil de sus estudiantes y futuros profesionales, un enriquecido conocimiento lgico y anal!tico en cuanto al curso que le abrir" a los egresados muchas oportunidades laborales que les permitir"n una mejor calidad de vida no solo para ellos, sino tambi(n para sus familias. )entro de ese marco mencionado, en la actividad que a continuacin ser" mostrada, reali+amos una minuciosa y e$haustiva investigacin y algunos ejercicios que nos requerir"n la pr"ctica de conocimientos previamente adquiridos posteriores a la lectura y compresin del %aterial )id"ctico estipulado para el mismo. OBJETIVOS GENERAL 8econocer la importancia que tiene J#&# como plataforma virtual de soft'are. ESPECI1ICOS 8econocer las ventajas y desventajas que tienen la tecnolog!a orientada a objetos. )iferenciar los conceptos de objeto y clase. )iferenciar la estructura de un programa reali+ado en C++ y Java. #plicar los conceptos adquiridos en situaciones que sean propuestas ya sea en la actividad a desarrollar o en cualquier otro momento. 8econocer las caracter!sticas de la estructura de un objeto en java. 3dentificar los tipos de datos usados en el lenguaje de programacin Java. )eterminar la importancia y ventajas que traen el uso de los ciclos repetitivos en la programacin orientada a objetos. 8esolver ejercicios de una situacin determinada que involucren los conceptos adquiridos en el estudio de la presente unidad. TRABAJO COLABORATIVO No. 2 GU*A DE ACTIVIDADES Te23t45as 6-e se re74sar3n: n este trabajo se revisar"n las siguientes tem"ticas9 Pr42er Paso: Desarro88o de 8as A5t474dades: UNIDAD 2. ESTRUCTURA DE UN OBJETO 9 INTRODUCCION A JAVA CAPITULO ". ANALISIS DE LA ESTRUCTURA . COMPORTAMIENTO DE UN OBJETO CAPITULO #. 1UNDAMENTOS DE JAVA Se:-ndo Paso: La;orator4os en JAVA <JCREATORV" LE= Corresponde al desarrollo de : Laboratorios programas en lenguaje de programacin java 5JC8#;-8&: L6 $. ;rabajar un programa en JAVA <JCREATORV" LE= con <na base de )atos teniendo en cuenta que tenga entidad relacin. 2. ;rabajar un programa en JAVA <JCREATORV" LE= que genere un Chat entre Cliente ,ervidor. ". ;rabajar un programa en JAVA <JCREATORV" LE= que encripte y desencripte un te$to num(rico o alfab(tico. Aspe5tos :enera8es de8 tra;a>o: Cada grupo de trabajo, organi+ado desde un comien+o, trabajar" en el desarrollo de las dos situaciones propuestas y orientar" sus actividades en funcin de presentar el informe final. l trabajo debe reali+arse en conjunto por todos los integrantes del grupo, consolidando los aportes de cada integrante en el foro. l documento final del foro deber ser * subido* a la plataforma en el lin. *A5t. ': Tra;a>o Co8a;orat47o No. 2 9 Tarea? Estrate:4a de aprend4@a>e prop-esta: Aprend4@a>e 5o8a;orat47o Peso E7a8-at47o: )ie+ por ciento 5$&A6 del total curso = %& p-ntos B %&& tota8es Crono:ra2a de a5t474dades de8 1oro: In454o: >?@-ct@?AAB AA9AA a.m. C4erre: :>@-ct@?AAB ?:9CC p.m. Prod-5to esperado: )ocumento escrito reali+ado en Dord 5e$tensin .doc6, letra #rial >?, interlineado >.C l!neas. l documento debe incluir9 2ortada, 3ntroduccin, )esarrollo de la actividad y Conclusiones. Los programas reali+ados en java tienen que ser jecutables o sea con e$tensin .java PARTE No. $ UNIDAD No. 2 CAPITULO No. " ACTIVIDADES COMPLEMENTARIAS $. Crear e8 s4:-4ente o;>eto de 8a C4:-ra: ;eniendo en cuenta que9 <n objeto es una entidad que est" provista de un conjunto de propiedades o atributos 5es decir, los datos6 y de comportamiento o funcionalidad 5llamados m(todos6 los mismos que consecuentemente reaccionan a eventos. ,e corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema 5del programa6. s una instancia a una clase. ,e puede inferir entonces que el objeto anterior se le puede denominar como calculadora, pues es un dispositivo que se utili+a para reali+ar c"lculos aritm(ticos. #unque las calculadoras modernas incorporan a menudo un ordenador de propsito general, se dise4an para reali+ar ciertas operaciones m"s que para ser fle$ibles. 2. DC-38 es 8a d4Ceren54a de 8a pro:ra2a54En or4entada o;>etos 5on otros 8en:-a>esF Pro:ra2a54En Or4entada a O;>etos Pro:ra2a54En or4entada a 5o2ponentes Pro:ra2a54En estr-5t-rada Pro:ra2a54En 2od-8ar La programacin orientada a objetos, intenta simular el mundo real a trav(s del significado de objetos que contiene caracter!sticas y funciones. Los lenguajes orientados a objetos se clasifican como lenguajes de quinta generacin. Como su mismo nombre indica, la programacin orientada a objetos se basa en la idea de un objeto, que es una combinacin de variables locales y procedimientos llamados m(todos que juntos conforman una entidad de programacin. l termino ncapsulacin se usa para describir la combinacin de estructuras de datos y de m(todos que son manipulados por el objeto. La llamada a un objeto es lo que se La programacin orientada a componentes 5que tambi(n es llamada basada en componentes6 es una rama de la ingenier!a del soft'are, con (nfasis en la descomposicin de sistemas ya conformados en componentes funcionales o lgicos con interfaces bien definidas usadas para la comunicacin entre componentes. ,e considera que el nivel de abstraccin de los componentes es mas alto que el de los objetos y por lo tanto no comparten un estado y se comunican intercambiando mensajes que contienen datos. Componente de soft'are <n componente de soft'are es un elemento de un sistema que ofrece un servicio predefinido, y es capa+ de comunicarse con otros La programacin estructurada es una forma de escribir programas de ordenador 5programacin de computadora6 de forma clara. 2ara ello utili+a nicamente tres estructuras9 secuencia, seleccin e iteracinE siendo innecesario el uso de la instruccin o instrucciones de transferencia incondicional 5/-;-, F3; 1<7C;3-7, F3; ,<0 o mltiples 8;<876. Goy en d!a las aplicaciones inform"ticas son mucho m"s ambiciosas que las necesidades de programacin e$istentes en los a4os >HIA, principalmente debido a las aplicaciones gr"ficas, por lo que las t(cnicas de programacin estructurada no son suficientes. llo ha llevado al desarrollo de nuevas t(cnicas, tales La programacin modular es un paradigma de programacin que consiste en dividir un programa en mdulos subprogramas con el fin de hacerlo m"s legible y manejable. ,e presenta histricamente como una evolucin de la programacin estructurada para solucionar problemas de programacin m"s grandes y complejos de lo que (sta puede resolver. #l aplicar la programacin modular, un problema complejo debe ser dividido en varios subproblemas m"s simples, y estos a su ve+ en otros subproblemas m"s simples. sto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos f"cilmente con algn lenguaje de denomina pasar un *aviso* a un objeto. n la programacin orientada a objetos, encapsular significa, reunir y controlar el grupo resultante como un todo y no individualmente. n la programacin orientada a objetos la abstraccin es un t(rmino e$terno al objeto, que controla la forma en que es visto por los dem"s. n la programacin orientada a objetos la modularidad se considera de la siguiente manera9 <n programa grande siempre ser" m"s complicado que la suma de varios programas peque4os, con lo que se considera ventajoso dividir un gran sistema en diversos mdulos. n la programacin orientada a objetos tenemos la jerarqu!a, la cual consiste en la clasificacin y organi+acin de las abstracciones segn su naturale+a. l m"s claro ejemplo de jerarqu!a es la herencia. n la programacin componentes. <na definicin m"s simple puede ser9 <n componente es un objeto escrito de acuerdo a unas especificaciones. 7o importa que especificacin sea esta, siempre y cuando el objeto se adhiera a la especificacin. ,olo cumpliendo correctamente con esa especificacin es que el objeto se convierte en componente y adquiere caracter!sticas como reusabilidad. Cuando se necesita el acceso a un componente o cuando este debe ser compartido entre distintas redes, se recurre a procesos como la seriali+acin para entregar el componente a su destino. La reusabilidad es una caracter!stica importante de los componentes de soft'are de alta calidad. <n componente debe ser dise4ado e implementado de tal forma que pueda ser reutili+ado en muchos programas diferentes. 8equiere gran esfuer+o y atencin escribir un como la programacin orientada a objetos y el desarrollo de entornos de programacin que facilitan la programacin de grandes aplicaciones. -r!genes de la programacin estructurada # finales de los a4os >HIA surgi una nueva forma de programar que no solamente daba lugar a programas fiables y eficientes, sino que adem"s estaban escritos de manera que facilitaba su comprensin posterior. l teorema del programa estructurado, demostrado por 0Jhm@Jacopini, demuestra que todo programa puede escribirse utili+ando nicamente las tres instrucciones de control siguientes9 ,ecuencia 3nstruccin condicional. 3teracin 5bucle de instrucciones6 con condicin al principio. ,olamente con estas tres estructuras se pueden escribir todos los programacin. Ksta t(cnica se llama refinamiento sucesivo, divide y vencer"s an"lisis descendente 5;op@)o'n6. <n mdulo es cada una de las partes de un programa que resuelve uno de los subproblemas en que se divide el problema complejo original. Cada uno de estos mdulos tiene una tarea bien definida y algunos necesitan de otros para poder operar. n caso de que un mdulo necesite de otro, puede comunicarse con (ste mediante una interfa+ de comunicacin que tambi(n debe estar bien definida. ,i bien un modulo puede entenderse como una parte de un programa en cualquiera de sus formas y variados conte$tos, en la pr"ctica es comn representarlos con procedimientos y funciones. #dicionalmente, tambi(n pueden considerarse mdulos las librer!as que pueden incluirse en un programa o, en programacin orientada a objetos, la implementacin de un orientada a objetos se define la herencia como una jerarqu!a de e$tracciones, y la relacin entre clases, donde se comparte la estructura y el comportamiento de una o m"s clase considerada como clases superiores o una superclase, con lo cual se resume que la herencia es una unidad independiente por si misma heredada de una abstraccin o superclase. <n ejemplo cotidiano lo encontramos en las aplicaciones que e$isten actualmente en el mercado, donde un formulario cualquiera hereda las caracter!sticas de una ventana del sistema operativo Dindo's 5%a$imi+ar, %inimi+ar, Cerrar6 componente que es realmente reutili+able. 2ara esto, el componente debe estar9 Completamente documentado. 2robado intensivamente9 )ebe ser robusto, comprobando la valide+ de las entradas. )ebe ser capa+ de pasar mensajes de error apropiados. )ise4ado pensando en que ser" usado de maneras imprevistas. programas y aplicaciones posibles. ,i bien los lenguajes de programacin tienen un mayor repertorio de estructuras de control, (stas pueden ser construidas mediante las tres b"sicas. &entajas de la programacin estructurada. Con la programacin estructurada, elaborar programas de computador sigue siendo una labor que e$ige esfuer+o, creatividad, habilidad y cuidado. ,in embargo, con este estilo podemos obtener las siguientes ventajas9 >. Los programas son m"s f"ciles de entender, ya que pueden ser le!dos de forma secuencial, sin necesidad de hacer seguimiento a saltos de l!nea 5/-;-6 dentro de los bloques de cdigo para entender la lgica. ?. La estructura del programa es clara, puesto que las instrucciones est"n m"s ligadas o relacionadas entre s!. :. 8educcin del tipo de dato abstracto. esfuer+o en las pruebas. l seguimiento de los fallos o errores del programa 5*debugging*6 se facilita debido a la estructura m"s visible, por lo que los errores se pueden detectar y corregir m"s f"cilmente. L. 8educcin de los costos de mantenimiento de los programas. C. 2rogramas m"s sencillos y m"s r"pidos 5ya que es m"s f"cil su optimi+acin6. I. Los bloques de cdigo son auto e$plicativos, lo que facilita la documentacin. M. Los /-;- se reservan para construir las instrucciones b"sicas. #unque no se usan de forma directa, por estar prohibida su utili+acin, est"n incluidas impl!citamente en las instrucciones de seleccin e iteracin. B. <n programa escrito de acuerdo a estos principios no solamente tendr" una mejor estructura sino tambi(n una e$celente presentacin. H. La programacin estructurada ofrece estos beneficios, pero no se la debe considerar como una panacea ya que el desarrollo de programas es, principalmente, una tarea de dedicacin, esfuer+o y creatividad. 3nconvenientes de la programacin estructurada l principal inconveniente de este m(todo de programacin es que se obtiene un nico bloque de programa, que cuando se hace demasiado grande puede resultar problem"tico su manejoE esto se resuelve empleando la programacin modular, definiendo mdulos interdependientes programados y compilados por separado 5en realidad esto no es necesario, pero es recomendable para su mantenimiento y funcionalidad6. n realidad, cuando se programa hoy en d!a 5inicios del siglo FF36 se suelen utili+ar, tanto las t(cnicas de programacin estructurada como las de programacin modular, de forma conjunta y por lo tanto es posible que cuando uno haga referencia a la programacin estructurada est( considerando tambi(n las t(cnicas de modulari+acin. <n m(todo un poco m"s sofisticado es la programacin por capas, en la que los mdulos tienen una estructura jer"rquica en la que se pueden definir funciones dentro de funciones o de procedimientos. Len:-a>es de pro:ra2a54En: Or4entado a O;>etos: Ada: s un lenguaje de programacin orientado a objetos y fuertemente tipado de forma est"tica que fue dise4ado por Jean 3chbiah de C33 Goney'ell 0ull por encargo del )epartamento de )efensa de los stados <nidos. s un lenguaje multipropsito, orientado a objetos y concurrente, pudiendo llegar desde la facilidad de 2ascal hasta la fle$ibilidad de C++. 1ue dise4ado con la seguridad en mente y con una filosof!a orientada a la reduccin de errores comunes y dif!ciles de descubrir. 2ara ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecucin 5desactivables en beneficio del rendimiento6. La sincroni+acin de tareas se reali+a mediante la primitiva rende+vous. #da se usa principalmente en entornos en los que se necesita una gran seguridad y fiabilidad como la defensa, la aeron"utica 50oeing o #irbus6, la gestin del tr"fico a(reo 5como 3ndra en spa4a6 y la industria aeroespacial entre otros. Cara5terGst45as La sinta$is, inspirada en 2ascal, es bastante legible incluso para personas que no cono+can el lenguaje. s un lenguaje que no escatima en la longitud de las palabras clave, en la filosof!a de que un programa se escribe una ve+, se modifica decenas de veces y se lee miles de veces 5legibilidad es m"s importante que rapide+ de escritura6. s indiferente el uso de maysculas y minsculas en los identificadores y palabras claves, es decir es un lenguaje case@insensitive. n #da, todo el programa es un nico procedimiento, que puede contener subprogramas 5procedimientos o funciones6. Cada sentencia se cierra con end qu(Ncerramos. s un modo de evitar errores y facilitar la lectura. 7o es necesario hacerlo en el caso de subprogramas, aunque todos los manuales lo aconsejan y casi todos los programadores de #da lo hacen. l operador de asignacin es9=, el de igualdad =. # los programadores de C y similares les puede confundir este rasgo inspirado en 2ascal. La sinta$is de atributos predefinidos es -bjetoO atributo 5o ;ipoO atributo6 5nota9 esto slo aplica a atributos predefinidos por el lenguaje, ya que no es el concepto de atributo t!pico de --26. ,e distingue entre *procedimientos* 5subrutinas que no devuelven ningn valor pero pueden modificar sus par"metros6 y *funciones* 5subrutinas que devuelven un valor y no modifican los par"metros6. %uchos lenguajes de programacin no hacen esta distincin. Las funciones de #da favorecen la seguridad al reducir los posibles efectos colaterales, pues no pueden tener par"metros in out. A5t4onS5r4pt: s un lenguaje de programacin orientado a objetos 5--26, utili+ado en especial en aplicaciones Deb animadas reali+adas en el entorno #dobe 1lash, la tecnolog!a de #dobe para a4adir dinamismo al panorama Deb. 1ue lan+ado con la versin L de 1lash, y desde entonces hasta ahora, ha ido ampli"ndose poco a poco, hasta llegar a niveles de dinamismo y versatilidad muy altos en la versin >A 5#dobe 1lash C,L6 de 1lash. #ction,cript es un lenguaje de script, esto es, no requiere la creacin de un programa completo para que la aplicacin alcance los objetivos. l lenguaje est" basado en especificaciones de est"ndar de industria C%#@?I?, un est"ndar para Javascript, de ah! que #ction,cript se pare+ca tanto a Javascript. La versin m"s e$tendida actualmente es #ction,cript :.A, que significo una mejora en el manejo de programacin orientada a objetos al ajustarse mejor al est"ndar C%#@?I? y es utili+ada en la ltima versin de #dobe 1lash y 1le$ 5recientemente comprada a %acromedia6 y en anteriores versiones de 1le$. )esde la versin ? de 1le$ viene incluido #ction,cript :, el cual mejora su rendimiento en comparacin de sus antecesores, adem"s de incluir nuevas caracter!sticas como el uso de e$presiones regulares y nuevas formas de empaquetar las clases. Ja7a: s un lenguaje de programacin orientado a objetos desarrollado por ,un %icrosystems a principios de los a4os HA. l lenguaje en s! mismo toma mucha de su sinta$is de C y C++, pero tiene un modelo de objetos m"s simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulacin directa de punteros o memoria. Las aplicaciones Java est"n t!picamente compiladas en un bytecode, aunque la compilacin en cdigo m"quina nativo tambi(n es posible. n el tiempo de ejecucin, el bytecode es normalmente interpretado o compilado a cdigo nativo para la ejecucin, aunque la ejecucin directa por hard'are del bytecode por un procesador Java tambi(n es posible. La implementacin original y de referencia del compilador, la m"quina virtual y las bibliotecas de clases de Java fueron desarrolladas por ,un %icrosystems en >HHC. )esde entonces, ,un ha controlado las especificaciones, el desarrollo y evolucin del lenguaje a trav(s del Java Community 2rocess, si bien otros han desarrollado tambi(n implementaciones alternativas de estas tecnolog!as de ,un, algunas incluso bajo licencias de soft'are libre. ntre noviembre de ?AAI y mayo de ?AAM, ,un %icrosystems liber la mayor parte de sus tecnolog!as Java bajo la licencia /7< /2L, de acuerdo con las especificaciones del Java Community 2rocess, de tal forma que pr"cticamente todo el Java de ,un es ahora soft'are libre 5aunque la biblioteca de clases de ,un que se requiere para ejecutar los programas Java todav!a no es soft'are libre6. Estr-5t-rada: Pas5a8: s un lenguaje de programacin desarrollado por el profesor sui+o 7i.laus Dirth a finales de los a4os IA. ,u objetivo era crear un lenguaje que facilitara el aprendi+aje de la programacin a sus alumnos. ,in embargo con el tiempo su utili+acin e$cedi el "mbito acad(mico para convertirse en una herramienta para la creacin de aplicaciones de todo tipo. 2ascal se caracteri+a por ser un lenguaje de programacin estructurado fuertemente tipificado. sto implica que9 l cdigo esta dividido en porciones f"cilmente legibles llamadas funciones o procedimientos. )e esta forma 2ascal facilita la utili+acin de la programacin estructurada en oposicin al antiguo estilo de programacin monol!tica. l tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado. l nombre de 2ascal fue escogido en honor al matem"tico 0laise 2ascal. Cara5terGst45as # diferencia de lenguajes de programacin descendientes de C, 2ascal utili+a el s!mbolo9= para la asignacin en ve+ de =. ,i bien el segundo es m"s conciso, la pr"ctica ha demostrado que muchos usuarios utili+an el s!mbolo de igualdad para comparar valores en lugar del comparador de C que es el s!mbolo ==. sta sinta$is conduce a muchos errores o bugs dif!ciles de rastrear en cdigo C. )ado que 2ascal no permite asignaciones dentro de e$presiones y utili+a sinta$is distinta para asignaciones y comparaciones, no sufre estos errores. #dem"s sus programas tienen definidas dos partes9 declarativa y ejecutiva. n la primera debe aparecer todo lo que se usar" en la segunda, de lo contrario se detecta como desconocido y evita ciertas incomprensiones como veremos m"s adelante. n la parte declarativa se enuncian <nit e$istentes, procedimientos, funciones, variables, constantes y nuevos tipos de datos estructurados. -tra diferencia importante es que en 2ascal, el tipo de una variable se fija en su definicinE la asignacin a variables de valores de tipo incompatible no est"n autori+adas 5n C, en cambio, el compilador hace el mejor esfuer+o para dar una interpretacin a casi todo tipo de asignaciones6. sto previene errores comunes donde variables son usadas incorrectamente porque el tipo es desconocidoE y tambi(n evita la necesidad de notacin hngara, que vienen a ser prefijos que se a4aden a los nombres de las variables y que indican su tipo. Mod-8a9" %odula@: es un lenguaje de programacin imperativo, estructurado y modular, concebido como el sucesor de %odula@?. Las principales caracter!sticas del lenguaje son su simplicidad y la seguridad, adem"s de conservar la potencia de los lenguajes de programacin de sistemas. Cara5terGst45as de8 8en:-a>e l manejo de e$cepciones est" basado en un sistema de bloques ;8P...FC2; bastante comn. <na caracter!stica que no se ha adoptado en otros lenguajes 5a e$cepcin de 2ython y ,cala6 es la construccin del FC2; definido como un pseudo@C#,, en el que cada posible e$cepcin es un caso en una cl"usula FC2;. %odula@: tambi(n incluye la construccin L--2...F3;...7), en la que el bucle se repite hasta que se encuentra un F3; 5esta estructura es equivalente a un bucle simple dentro de un ;8P...FC2;6 l empleo de objetos se mantiene intencionadamente en su vertiente m"s simple. <n tipo de objeto 5clase6 se crea con la declaracin -0JC;. Ksta tiene b"sicamente la misma sinta$is que una declaracin 8C-8), aunque un objeto as! declarado es un tipo de referencia mientras que 8C-8) no lo es. 2or ejemplo9 # = -0JC; a9 37;/8E %;G-), p 569= #2E 7)E declara un nuevo tipo de objeto *#*, que contiene un nico campo *a* y un m(todo *p*. l procedimiento *#2* que implementa a *p* debe ser declarado en otro lugar9 28-C)<8 #2 5self9 #6 = 0/37... 7)E Las llamadas a los m(todos se reali+an con *o.p 56E*, donde *o* es una variable de tipo *#*. La construccin 8&#L de %odula@: proporciona un mecanismo conceptualmente simple y muy potente para ocultar los detalles de implementacin a los clientes, con distintos niveles de *amistad*. n resumen, las caracter!sticas del lenguaje son9 %odularidad e interfaces 8esaltado e$pl!cito de cdigo inseguro 8ecogida autom"tica de basura ;ipo de dato fuerte, equivalencia estructural de tipos -bjetos $cepciones ;hreads 2lantillas %odula@: es uno de los pocos lenguajes en los que la evolucin de sus caracter!sticas est" documentada. n ,ystem 2rogramming 'ith %odula@:, se tratan cuatro puntos esenciales del dise4o del lenguaje. stos temas son structural vs. quivalencia ,em"ntica, reglas para los subtipos, mdulos gen(ricos y tipos de par"metros 5como 8#)-7LP6 ". DC-38es son 8as des7enta>as de 8a pro:ra2a54En or4entada a o;>etosF La programacin orientada a objetos es una evolucin de la programacin procedural basada en funciones. La 2-- nos permite agrupar secciones de cdigo con funcionalidades comunes. <na de las principales desventajas de la programacin procedural basada en funciones es su construccin, cuando una aplicacin bajo este tipo de programacin crece, la modificacin del cdigo se hace muy trabajosa y dif!cil debido a que el cambio de una sola l!nea en una funcin, puede acarrear la modificacin de muchas otras l!neas de cdigo pertenecientes a otras funciones que est(n relacionadas.
Con la programacin orientada a objetos se pretende agrupar el cdigo encapsul"ndolo y haci(ndolo independiente, de manera que una modificacin debida al crecimiento de la aplicacin solo afecte a unas pocas l!neas.
La organi+acin de una aplicacin en 2-- se reali+a mediante estructuras de cdigo, tambi(n llamados objetos. stos objetos contienen una serie de procedimientos e informacin destinados a resolver un grupo de tareas con un denominador comn. <n procedimiento que este situado en un objeto no podr" ser usado por otro procedimiento perteneciente a otro objeto, si no es bajo una serie de reglas. Los datos que mantenga el objeto, permanecer"n aislados del e$terior y slo se podr" acceder a ellos siguiendo ciertas normas. l objetivo de 2-- es catalogar y diferenciar el cdigo, en base a estructuras jer"rquicas dependientes, al estilo de un "rbol genealgico. Los objetos se crean a partir de una serie de especificaciones o normas que definen como va a ser el objeto, esto es lo que en 2-- se conoce como una clase.
Las clases definen la estructura que van a tener los objetos que se creen a partir de ella, indicando que propiedades y m(todos tendr"n los objetos.
Las propiedades definen los datos o informacin del objeto, permitiendo modificar o consultar su estado, mientras que los m(todos son las rutinas que definen el comportamiento del objeto. s necesario tener muy clara cual es la diferencia entre un objeto y una clase, a este respecto podemos decir que una clase constituye la representacin abstracta de algo mientras que un objeto constituye la representacin concreta de lo que la clase define. 3maginemos los planos de una casa dise4ados por un arquitecto, en ellos encontramos el esquema de la casa, las medidas, los materiales etc. <na ve+ construida la casa podremos comprobar que cumple todo lo que los planos determinaban, de esta manera podemos comparar los planos de la casa con las clases en 2--, y la casa en si con un objeto creado a partir de una clase. ,e debe destacar tambi(n que con los mismos planos se pueden crear muchas casas iguales, lo mismo ocurre en 2--, a partir de una clase se pueden crear muchos objetos iguales. La creacin de un objeto a partir de una clase se conoce como instanciacin de un objeto. CARACTERISTICAS En5aps-8a54En: ,ignifica que en una clase se declaran los tipos de datos y el medio de manipularlos 5sus m(todos6. (eren54a: ,upone crear clases derivadas de otras e$istentes, que heredan sus tipos y m(todos y pueden contener otros nuevos. ,i una nueva clase hereda propiedades de m"s de una antecesora, se denomina herencia mltiple. ,in embargo, no todos los lenguajes orientados a objetos lo permiten. Po842orC4s2o: La programacin de funciones o procedimientos que ejecutar"n acciones que depender"n de los objetos sobre los que se apliquen. COMPONENTES l cmputo es un sistema orientado a objetos que supone la manipulacin de objetos de ciertas clases. <na clase es en realidad, un medio de empaquetar una implementacin de tipo abstracto de datos 5;#)6 y esta clase controla el acceso a los elementos. <na clase contiene toda la informacin necesaria para construir ejemplares individuales de ella misma9 estos ejemplares se conoces como objetos. s importante comprender la diferencia entre clase y un objetoE una clase es simplemente una especificacin para crear objetos. )e este modo una nica clase permite crear mltiples objetos. Los objetos son entidades reales que ser"n manipuladas en un programa inform"tico. Cada objeto contiene su propio conjunto de datos, llamados variables miembros o miembros de datos, que determinan el estado individual de ese objeto. #dem"s una clase puede almacenar informacin que es compartida por todos los ejemplares de la clase en variables de clase. USOS DE LA POO )!a a d!a los costos del Gard'are decrecen. #s! surgen nuevas "reas de aplicacin cotidianamente9 procesamiento de im"genes y sonido, bases de datos multimediales, automati+acin de oficinas, ambientes de ingenier!a de soft'are, etc. #n en las aplicaciones tradicionales encontramos que definir interfases hombre@m"quina *a@la@ Dindo's* suele ser bastante conveniente. Lamentablemente, los costos de produccin de soft'are siguen aumentandoE el mantenimiento y la modificacin de sistemas complejos suele ser una tarea trabajosaE cada aplicacin, 5aunque tenga aspectos similares a otra6 suele encararse como un proyecto nuevo, etc. Venta>as de 8a te5no8o:Ga or4entada a o;>etos. 18eH4;484dad. ,i partimos del hecho que mediante la definicin de clases establecemos mdulos independientes, a partir de los cuales podemos definir nuevas clases, entonces podemos pensar en estos mdulos como bloques con los cuales podemos construir diferentes programas. Re-sa;484dad. <na ve+ que hemos definido a la entidad persona para utili+arla en una aplicacin de negocios, por mencionar un ejemplo, y deseamos construir a continuacin una aplicacin, digamos de deportes, en donde requerimos definir a la misma entidad persona, no es deseable volver a escribir la definicin para la entidad persona. 2or medio de la reusabilidad podemos utili+ar una clase definida previamente en las aplicaciones que nos sea conveniente. s claro que la fle$ibilidad con la que se defini la clase va a ser fundamental para su reutili+acin. Manten4;484dad. Las clases que conforman una aplicacin, vistas como mdulos independientes entre s!, son f"ciles de mantener sin afectar a los dem"s componentes de la aplicacin. EHtens4;484dad. /racias a la modularidad y a la herencia una aplicacin dise4ada bajo el paradigma de la orientacin a objetos puede ser f"cilmente e$tensible para cubrir necesidades de crecimiento de la aplicacin. Des7enta>as de 8a te5no8o:Ga or4entada a o;>etos. # pesar de que las ventajas de la programacin orientada a objetos superan a las limitaciones de la misma, podemos encontrar algunas caracter!sticas no deseables en (sta. L424ta54ones para e8 pro:ra2ador. 7o obstante que la tecnolog!a orientada a objetos no es nueva, un gran porcentaje de programadores no est"n familiari+ados con los conceptos de dicha tecnolog!a. n otras palabras, la lgica de la programacin estructurada sigue siendo predominante en la mayor!a de los desarrolladores de soft'are, despu(s de haber revisado de forma breve los principios de la programacin orientada a objetos, nos es claro que en (sta se requiere una lgica de pensamiento totalmente diferente a la lgica comnmente utili+ada para la programacin estructurada. Ta2aIo eH5es47o en 8as ap845a54ones res-8tantes. La gran mayor!a de los equipos de cmputo cuentan con capacidades tanto de almacenamiento como de memoria lo suficientemente buena como para ejecutar la mayor!a de las aplicaciones que puedan desarrollarse con la tecnolog!a orientada a objetos, sin embargo e$isten casos en los que lo anterior no se cumple. <na de las desventajas de la programacin orientada a objetos es que cuando se heredan clases a partir de clases e$istentes se heredan de forma impl!cita todos los miembros de dicha clase aun cuando no todos se necesiten, lo que produce aplicaciones muy grandes que no siempre encajan en los sistemas con los que se disponga. Ve8o54dad de e>e5-54En. sto tiene que ver, en cierto modo, con el punto anterior, una aplicacin innecesariamente pesada en muchas ocasiones es m"s lenta de ejecutar que una aplicacin conformada nicamente por los mdulos necesarios. #. Rea84@a -na estr-5t-ra por e>e2p8o de8 5o2p-tador de s- 5asa donde 4nd46-e 5-a8es son 8os datos J 5-a8es son 8os 2Ktodos. <na ve+ le!do el material de estudio que corresponde a est" unidad did"ctica, es importante que se realicen actividades complementarias, con el fin de profundi+ar en los temas anteriormente estudiados. n efecto, dando paso a este punto de la actividad, se deben tener en cuanta los conceptos de datos y m(todos respectivamente. 2ara poder entender mejor el punto, a continuacin de procede a definir conceptualmente lo que abarcan dichos t(rminos en cuanto a lo que se est" estudiando. 2or lo tanto, se puede definir entonces que un objeto es una entidad que est" provista de un conjunto de propiedades o atributos 5es decir, los datos6 y de comportamiento o funcionalidad 5llamados m(todos6 los mismos que consecuentemente reaccionan a eventos. ,e corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema 5del programa6. s una instancia a una clase. ,i en este caso particular, aplicamos lo abordado a lo que est"n planteando en el punto, se puede abarcar entonces que el objeto a tomar, denominado bajo el nombre de QcomputadorR, ll"mese en que tengamos en nuestros hogares, lugares de trabajo, universidad, o cualquier otro lugar donde podamos tener acceso, es posible afirmar que9 Los datos ySo atributos que posee el objeto computador pueden ser9 su tama4o, el color que (ste posea, la casa fabricante o marca, el material del que est" elaborado, etc. ntre los m(todos o funciones del objeto computador, pueden describirse9 reciben entradas 5son los datos que se capturan en un sistema de computacin para su procesamiento6 producen salidas 5la presentacin de los resultados del procesamiento6 almacenan informacin, se pueden prender y apagar, tienen la habilidad de poder detectar un red 5sea (sta guiada o no guiada6, procesar una determinada informacin requerida, hacer c"lculos por muy complejos que sean, entre otras. 2ero si nos ponemos a observar de una manera an m"s detallada, se puede llegar a la conclusin de que el objeto computador, est" a su ve+ compuesto por otros objetos, como lo son el monitor, la C2< 5o <nidad Central de 2rocesamiento, por sus siglas en ingl(s6, el teclado y el %ouse. %. In7est4:a 5o2o es e8 5o2porta24ento de 8os o;>etos en -na 58ase. <na clase plasma un conjunto de responsabilidades que define el comportamiento de los objetos de la clase. Las acciones de las que la clase es responsable se llevan a cabo mediante las operaciones definidas en la clase, de forma que todas las instancias de la clase ser"n capaces de reali+ar las operaciones de dicha clase. La estructura de un objeto se define a partir de los atributos de la clase a la que pertenece. Los objetos de una clase asignar"n un valor a cada uno de los atributos de su clase. /eneralmente los mensajes en los diagramas de interaccin se traducen a operaciones en las clases que los reciben, sin embargo, hay casos especiales de mensajes que no llegan a ser operaciones. 2or ejemplo, si la clase que recibe el mensaje es de tipo boundary 5estereotipo de una clase6 que contiene una clase de tipo /<3 5graphical user interface6, el mensaje es una declaracin de los requisitos de la /<3. ,e encontrar"n otros ejemplos en los mensajes desde o hacia un actor que modela una persona f!sica, estos mensajes deben incorporarse al manual de usuario ya que no tiene sentido crear operaciones para personas. 3gualmente, si se trata de un mensaje desde o hacia un actor que representa otro sistema, se debe crear una clase que contenga el protocolo que se va a utili+ar en la comunicacin con el sistema e$terno, en este caso el mensaje se traduce a una de las operaciones de la clase creada para el protocolo espec!fico. Las operaciones tambi(n se pueden crear independientemente de los diagramas de interaccin, ya que puede ser que no todos los escenarios est(n representados en estos diagramas. #dem"s, pueden e$istir operaciones que se crean para ayudar a otra operacin. #unque hemos definido el comportamiento y la estructura como caracter!sticas asociadas a un objeto, tambi(n una relacin puede estar dotada de estructura y comportamiento. ,e trata de relaciones cuya informacin tiene que ver con el enlace entre los objetos relacionados y no con uno de los objetos en particular. La estructura y el comportamiento que definen una relacin se representa mediante una clase de tipo association class. #unque los casos de uso y escenarios proporcionan la forma de describir el comportamiento del sistema, es decir, la interaccin entre los objetos del sistema, a veces es necesario especificar el comportamiento interno de un objeto. l comportamiento din"mico de un objeto se puede incluir en el dise no utili+ando un diagrama de estados y transiciones 5state transition diagram6, dichos diagramas muestran los estados del objeto, los eventos o mensajes que originan la transicin de un estado a otro, y las acciones consecuencia del cambio de estado. ,e crear" un diagrama de este tipo para aquellas clases con un comportamiento din"mico significativo. ste tipo de diagramas de comportamiento tambi(n se utili+an en la especificacin del comportamiento de agregaciones y de clases control 5estereotipo control de una clase6. l comportamiento de los objetos de una clase se describe a trav(s de un conjunto de m(todos. <n m(todo simula una operacin 5o proceso6 que los objetos de la clase saben reali+ar. Los m(todos permiten *administrar* el estado del objeto9 cambiar los valores de los atributos. Los m(todos permiten consultar el estado de los objetos9 conocer los valores de los atributos UNIDAD No. 2 CAPITULO No. # ACTIVIDADES COMPLEMENTARIAS $. EHp846-e 5-a8 es 8a d4Ceren54a de 8a estr-5t-ra de -n pro:ra2a en C J Ja7a. Java tiene dos tipos de clases internas, clases internas est"ticas y no est"ticas de clases internas. C T tiene una funcin similar a la est"tica clases internas, pero no tiene ninguna contrapartida para los no@est"tica clases internas. #dem"s, en Java puede declarar clases internas annimas dentro de los m(todos, pero no puede hacer eso en C T. Java permite ca!da en sus declaraciones a trav(s del interruptor y puede cambiar en enteros y caracteres de C T, pero puede cambiar en las cuerdas y anhela y no permite una ca!da profunda a menos que est( vac!a.
Java no permite punteros y la aritm(tica de punteros, pero C T permite un uso restringido del puntero mediante el uso de la palabra clave no apto para ese bloque de cdigo que, programador va a usar punteros. Cuando se trata de tipos primitivos, C T tiene m"s tipos primitivos de Java, el apoyo enteros sin signo y cadenas literales. C T proporciona la capacidad de evitar el uso de secuencias de escape dentro de las constantes de cadena y en lugar de declarar cadenas literalmente. #s!, las barras invertidas, partituras, citas y saltos de l!nea puede ser parte de una cadena sin usar secuencias de escape. La nica advertencia es que las comillas dobles que aparecen en las cadenas literales deben ser redobladas. Cadenas literales se especifican anteponiendo el s!mbolo U a las declaraciones de cadena. C T tiene cierto multidimensional, que no tiene java, pero ambos tienen las matrices de matrices 5arrays irregulares6, tienen un rendimiento inferior en comparacin con el acceso multidimensional 5rectangular6 de matrices. La clase parcial es un concepto en C T que falta en Java, que permite una fuente de la clase a ser dividido en varios ficheros fuente, sino que debe estar marcado parcial. /enerics e$iste tanto en los lenguajes de programacin, pero en pr"ctica diferentes. n Java slo el compilador sabe acerca de ellos y J&% no tienen que cambiar mucho para apoyarla, pero el mecanismo est" integrado en la plataforma. 7;. Java no permite que los tipos primitivos en los gen(ricos, pero C T. %(todo de los punteros se incluyen en C T en la forma de los delegados utili+ados para las devoluciones de llamada y manejo de eventos, que no e$iste en Java. /estin de eventos se reali+a a trav(s del patrn -bserver en Java, pero se maneja a nivel de lenguaje en C T mediante el uso de los delegados. C T contiene la instruccin goto para saltar a ciertas etiquetas, que no e$iste en Java. )e C T permite la sobrecarga de operadores sujetos a restricciones, pero Java no lo hace. n los m(todos de la subclase de Java con el mismo nombre como su m(todo de padres de la clase siempre anulan sus correspondientes m(todos de la clase sper, que no es cierto en C T. 2ara reempla+ar, se debe utili+ar el modificador override, de lo contrario se considera como un nuevo m(todo. C T admite implementaciones e$pl!citas de m(todo de interfa+, que ayuda en la situacin cuando una clase implementa varias interfaces que se utili+an m(todos con las firmas mismo. )irectivas de preprocesador de dar la capacidad de C T para compilar algunas secciones del Cdigo, bajo ciertas condiciones. 7o hay equivalente en Java. C T no admite e$cepcin marcada como Java, y slo tiene una e$cepcin sin control 5a e$cepcin de tiempo de ejecucin6. #cceso a los componentes C-% e$iste en. 7et, pero en Java se necesita un puente de terceros. )e ;rabajo con cdigo nativo tambi(n es m"s f"cil en. 7et, ya que es posible deshabilitar las restricciones de seguridad de CL8. n Java todos los m(todos son m(todos virtuales, mientras que en C T, se debe indicar claramente que los m(todos que se quiere ser virtual ya que por defecto no lo son. s posible marcar m(todos como final en Java, que significa que el m(todo no puede ser anulado por las clases derivadas. n C T esto se puede hacer por no marcar el m(todo como virtual. Javadoc es la herramienta utili+ada para e$traer documentacin de la #23 de cdigo fuente. Javadoc genera documentacin G;%L desde el cdigo fuente comment.C T utili+a F%L como el formato de la documentacin. La documentacin generada es un archivo F%L que contiene los metadatos especificados por el usuario con muy poca informacin adicional generada autom"ticamente. 3nserta Java, todo objeto de la clase en la memoria de montn, mientras que los primitivos en la pila. 2oner objetos en el montn alguna ineficiencia, que no tienen que ver con C T como se puede hacer una clase basadas en pila. Las propiedades son una parte de C T que es similar al de captadores y definidores en Java, que no es un mecanismo, sino un patrn en Java. )e est" forma, se podr" tener m"s control sobre las propiedades a trav(s de slo lectura, slo escritura, * VW propiedades. <n indi+ador es una sinta$is especial para la sobrecarga del operador XY para una clase en C T que no e$iste en Java. <n indi+ador es til cuando una clase es un contenedor para otro tipo de objeto. 3ndi+adores son fle$ibles ya que cualquier tipo de apoyo, tales como nmeros enteros o cadenas, como los !ndices. ;ambi(n es posible crear indi+adores que permiten la sinta$is de matri+ multidimensional donde se puede me+clar y combinar diferentes tipos de !ndices. 2or ltimo, indi+adores se puede sobrecargar. La palabra clave using se puede usar para el alias del nombre completo de un tipo similar a la typedef forma se utili+a en C y C + +. sto es til en la creacin de cdigo legible cuando el nombre completo de una clase es necesario para resolver conflictos de nombres, que no e$iste en Java. n Java los argumentos de un m(todo se pasan por el sentido de valor que un m(todo funciona en las copias de los temas que se le pasa en lugar de sobre los temas reales. n C T, como en C + + y C, en un sentido, es posible especificar que los argumentos de un m(todo realmente como referencias a los art!culos que se pasa al m(todo en ve+ de copias. C T proporciona la opcin de detectar de manera e$pl!cita o ignorar las condiciones de desbordamiento de e$presiones y las conversiones de tipo. Las condiciones de desbordamiento detectado en el cdigo de lan+ar una ,ystem.-verflo'$ception. <na clase est"tica es una clase que no tiene miembros de instancia, no constructores de instancia y no puede ser usado como una clase base. 7o hay clases est"ticas en Java. n C T a tipos que aceptan valores 7<LL es un ejemplo del tipo de ,ystem.7ullable. <n tipo anulable a4ade la posibilidad de un valor nulo es variable, adem"s de su rango de valor original. Los tipos anulables son particularmente tiles cuando la cartograf!a C T objetos a los esquemas de bases de datos relacionales desde 7<LL es un valor v"lido para todos los tipos de datos en bases de datos ,ZL. 7o e$iste tal concepto en Java. Los m(todos annimos son una caracter!stica de compa4!a a los delegados. <n m(todo annimo es un bloque de cdigo que puede utili+arse cuando se espera un m(todo delegado. sto simplifica el cdigo que utili+a los delegados al no e$igir un m(todo separado para implementar la funcionalidad del delegado. Creacin de una estructura de datos que sea compatible para ser utili+ado en un bucle foreach, es de alguna manera ardua en Java y lenguajes de programacin C T, C T, pero podr!a hacer que esto sea menos dolorosa la conversin de un m(todo o una propiedad en un repetidor a trav(s del rendimiento de palabras clave. n el momento de escribir estas l!neas C T slo est" disponible en Dindo's. ,e est"n reali+ando esfuer+os en marcha para portarlo a otras plataformas, incluyendo Linu$ y 1ree0,). n Java, es posible que las constantes se declaren en las interfaces que est"n entonces disponibles para la aplicacin de las clases mientras que en C T esto no est" permitido. sto no puede ser un gran problema en C T desde el uso principal de las constantes declaradas en las interfaces es como una emulacin de los pobres de las enumeraciones. Estr-5t-ra de -n pro:ra2a en Ja7a La estructura de un programa de Java es similar a la de un programa de CSC++. 2or su dise4o, permite a los programadores de cualquier otro lenguaje leer cdigo en Java sin mucha dificultad. Java emplea siempre la 2rogramacin -rientada a -bjetos por lo que todo el cdigo se incluye dentro de las clases. #unque ya se e$plicar"n detenidamente m"s adelante, las clases son combinaciones de datos 5constantes y variables6 y rutinas 5m(todos6. La 58ase pr4n54pa8 J e8 2Ktodo 2a4n <n programa puede construirse empleando varias clases. n el caso m"s simple se utili+ar" una nica clase. sta clase contiene el programa, rutina o m(todo principal9 main () y en (ste se incluyen las sentencias del programa principal. stas sentencias se separan entre s! por caracteres de punto y coma. La estructura de un programa simple en Java es la siguiente9 Como primer ejemplo sencillo de programa escrito en Java se va a utili+ar uno que muestra un mensaje por la pantalla del ordenador. 2or ejemplo, el programa Hola.java9 Como se ha indicado anteriormente, en un programa de Java todo se organi+a dentro de las clases. n el ejemplo anterior, Hola es el nombre de la clase principal y del archivo que contiene el cdigo fuente. ;odos los programas o aplicaciones independientes escritas en Java tienen un m(todo. Main o principal que, a su ve+, contiene un conjunto de sentencias. n Java los conjuntos o bloques de sentencias se indican entre llaves { }. n el caso anterior, el conjunto de sentencias se reduce a tres sentencias, que son llamadas a dos m(todos predefinidos en Java 5print y println6 que permiten visuali+ar te$to por el dispositivo de salida de datos por defecto 5la pantalla6. 2or el momento y hasta que se e$plique con detalle el concepto de clase, los ejemplos de programa que se utili+ar"n constar"n de una sola clase en la que se declara el m(todo main. ste m(todo es el punto de arranque de la ejecucin de todo programa en Java. Co2entar4os Los comentarios se emplean para facilitar la tarea de los programadores humanos ya que no reali+an ningn papel activo en la generacin del cdigo. Los comentarios que se pueden introducir en el cdigo fuente de un programa de Java son del estilo de C y C++. #s!, el compilador ignora todo lo que se incluya entre la secuencia de caracteres // y el final de la l!nea. 2or ejemplo9 // Este es un comentario estilo C++, llega al final de la lnea La pareja de caracteres / hay que escribirla sin dejar ningn espacio en blanco entre ellos. l segundo tipo de comentario es el que se utili+a tambi(n en el lenguaje de programacin C9 el compilador tambi(n ignora todo lo que se incluya entre las secuencias de caracteres /! y !/. 2or ejemplo9 /* En este otro comentario estilo C, el final lo indica la marca */ l comentario con // es m"s f"cil de teclear si slo ocupa una l!nea, pero si ocupa varias, entonces el m"s sencillo es el de /!... !/. Los comentarios pueden incluir cualquier car"cter v"lido en <nicode y no pueden anidarse. stos dos formatos de comentario se emplean para los denominados comentarios de implementacin. Los comentarios de implementacin se utili+an en el programa fuente para resaltar cdigo o para aclarar un desarrollo en particular. #dem"s, en Java e$iste un tercer tipo de comentario 5doc comments6 que facilita la generacin de documentacin en formato G;%L al emplear algunas herramientas de documentacin 5por ejemplo, javadoc incluida en el [it de )esarrollo de Java6. Los comentarios para la documentacin se emplean para describir la especificacin del cdigo, desde una perspectiva independiente cmo se ha implementado y ser le!do por desarrolladores que no tengan necesariamente el cdigo fuente a la vista. )ebe evitarse emplear los comentarios para dar panor"micas del cdigo y facilitar informacin que no facilite la propia lectura del cdigo. jemplos de este tipo de comentarios9 Los comentarios deber!an contener slo informacin relevante para la lectura y comprensin del programa. ;odos los programas deben empe+ar por un comentario que describa el propsito del programa. La discusin de decisiones de dise4o que no sean obvias 5triviales6 es apropiada, pero debe evitarse la duplicidad de informacin dada por el propio cdigo. s muy comn que los comentarios redundantes se desactualicen. n general, se debe evitar incluir comentarios que puedan quedarse obsoletos conforme el cdigo se desarrolle. 2or ejemplo, dentro de un comentario no deber!a incluirse informacin acerca de cmo se ha construido un archivo fuente determinado o en que directorio se haya el cdigo. # veces la frecuencia de los comentarios refleja una peor calidad de cdigo. Cuando se sienta la necesidad de a4adir un comentario, debe considerarse la reescritura del cdigo para hacerlo m"s claro. Con7en54En para 8os 5o2entar4os a8 4n454o de 8os pro:ra2as ;odos los archivos fuente deber!an comen+ar con un comentario estilo C que liste el nombre de la clase, informacin de la versin, fecha y el aviso de copyright9 Ident4C45adores Los identificadores son nombres que se les asignan a variables, m(todos, clases en el cdigo fuente de un programa. Los identificadores slo e$isten en el cdigo del programa fuente y no en el programa objeto 5resultado de la compilacin del programa fuente6. ;odo nuevo identificador que se emplee en un programa Java debe definirse previamente a su utili+acin. Las normas para la construccin de un identificador empleando el lenguaje de programacin Java son las siguientes9 <n identificador comien+a por una letra, un car"cter de subrayado 5"6 o un car"cter de dlar 5#6. #unque no se recomienda emplear el car"cter #, ya que el compilador suele utili+arlos de forma interna para crear identificadores propios. Los siguientes caracteres pueden ser tambi(n d!gitos. 2ero no pueden emplearse espacios en blanco u otros caracteres como el signo de interrogacin 5$6 o el signo del tanto por ciento 5%6. 7o hay l!mite m"$imo de caracteres. n los identificadores del cdigo fuente de un programa en Java se distinguen las maysculas de las minsculas. 2or ejemplo, casa, C&'& y Casa son tres identificadores diferentes. 2ueden incluir caracteres <nicode, con lo que se pueden emplear secuencias de escape /uxxxx para representar estos caracteres. 7o puede emplearse el identificador de una variable o cualquier otro elemento del cdigo fuente del programa para otro ya e$istente en el mismo bloque. $cepcin9 variable miembro y local con el mismo identificador. $iste una serie de palabras reservadas que no pueden emplearse como identificadores por el programador en el cdigo fuente para otros usos. 2or ejemplo, la palabra dou(le se utili+a para definir un tipo de dato real y la palabra for se emplea para construir un tipo determinado de bucle. n la siguiente tabla, se muestran las palabras reservadas en Java. #lgunos de estos identificadores reservados no tienen todav!a uso en la implementacin actual del lenguaje Java. n concreto, los identificadores marcados con un asterisco ! no se utili+an actualmente. 2or otro lado a continuacin se muestran los nombres de m(todos reservados en Java cuyo significado y utili+acin se e$plicar" m"s adelante cuando se menciones la clase predefinida )(ject. #unque la forma de escribir los identificadores en Java no est" normali+ada, a continuacin se dan algunas recomendaciones para la eleccin de estos identificadores9 s conveniente utili+ar identificadores autoe$plicativos para orientar al usuario o a cualquier otra persona que accede al cdigo fuente de un programa sobre lo que representan, sin necesidad de utili+ar los comentarios en el propio cdigo fuente. 2or ejemplo, para almacenar el valor del radio de una esfera podr!a declararse una variable con el identificador radio, radioesfera o radiodeunaesfera. ,i el identificador se compone de m"s de una palabra, (stas se agrupan y despu(s de la primera el resto comien+a con una letra mayscula, como por ejemplo9 es*isi(le radioEsfera. l signo de subrayado se acepta en cualquier identificador pero por convencin slo se emplea para separar palabras en identificadores en constantes 5por convencin las constantes se escriben completamente en maysculas y esto dificulta la separacin de los nombres6. 2or ejemplo, para un valor constante que almacena un valor num(rico que representa el nmero m"$imo de alumnos con los que trabaja el programa se podr!a declarar el identificador de la constante +,ME-)"M&./M)"&0,M+)'. Con7en54ones para 8a 8e:4;484dad de8 pro:ra2a C-ente #unque la definicin e$acta de la indentacin 5espacios vs. tabuladores6 no se especifica en el lenguaje Java, se recomienda emplear una secuencia de cuatro espacios como unidad de indentacin. 2or otro lado se recomienda evitar las l!neas de m"s de BA caracteres en el cdigo fuente ya que no se manejan correctamente por muchos terminales y herramientas de edicin. 2. DL-K 4nstr-554ones de;e2os tener en 5-enta para 5rear -n pro:ra2a sen5488oF 2ara crear un programa necesitaremos reali+ar los siguientes pasos9 Crear el cdigo fuente. <n archivo de cdigo fuente contiene te$to escrito en el lenguaje de programacin Java. ,e puede utili+ar un simple editor de te$to para crear y editar el cdigo. Compilar el cdigo fuente. l compilador traslada el cdigo fuente en instrucciones que la m"quina virtual de Java pueda entender. l compilador crea esas instrucciones en un archivo bytecode. jecutar el programa. l int(rprete Java, instalado en el sistema operativo, implementa la m"quina virtual de Java. ste int(rprete transforma el bytecode en instrucciones que pueda entender el sistema operativo. E8e2entos de -n pro:ra2a en Ja7a <n programa en java, debe tener los siguientes elementos9\L# ]-7# ) 37CL<,3^79 que es similar al pre@procesador de C, donde especificamos los paquetes que vamos a usar en nuestro programa. Los cuales deben ser especificados al inicio del programa, con ayuda de la sentencia import y acompa4ado de un punto y coma 5E6 al final de la instruccin. jemplo9 3mport java$.s'ing.J-ption2aneE 3mport java.io.\E n java, podemos incluir todo el paquete, como en el caso de java.io, al agregarle el asteriscoE o simplemente, especificamos que archivos del paquete que queremos usar, como en el primer caso, en el cual estamos incluyendo 5o mejor dicho importando6 el archivo J-ption2ane, del paquete java$.s'ing. 5l cual nos ayuda para poder usar las cajitas de te$to para mandar informacin a la pantalla o para leerla desde el telado6. \L#, CL#,,9 <n 2rograma en java, debe poseer #L %7-, una clase, con la cual se debe proseguir en la configuracin de nuestro programa. jemplo9 Class 2rimer2rograma _ Como puede verse, una clase se especifica con la palabra reservada class. <na clase puede ser9 2blica o 2rivada. )e lo cual hablares m"s adelante, por el momento el usuario, debe nicamente especificar una clase, nicamente con class por que despu(s comprender" la diferencia y podr" aplicarlo a sus programas. #dem"s el nombre de la clase, debe iniciar con mayscula. \L 28-/8#%# 2837C32#L9 l cual siempre, siempre, siempre se especificar" de la siguiente manera9 public static void main 5,tring argsXY6 _Lo que est" entre los par(ntesis, indica nada m"s los argumentos que recibe nuestro programa, el cual ,3%28 ,8` uno del tipo ,tring, el nombre de args, puede ser cambiado, pero 7<7C# debe omitirse los corchetes. EHp845a54En n la l!nea numero <no, encontramos la llamada al paquete, el cual es java.lang 5(ste paquete nos ayuda para usar las funciones matem"ticas y otras funciones como ,ystem.out.println, sin embargo 7- es necesario especificarlo, ya que Java, por defecto, incluye (ste paquete en todos los programas que creamos6. Luego encontramos la declaracin de la clase, la cual es 2rimer2rograma, como puede observar la primera letra es mayscula, y como el nombre est" compuesto por dos palabras 52rimer y 2rograma6, es por tal ra+n que cada una de ellas tiene su primera letra mayscula. -tra cosa importante es que, el nombre del archivo, 5que tiene e$tensin \.java6, ,3%28 se debe llamar igual que la claseE es decir que, este cdigo, est" guardado como9 2rimer2rograma.java. ,i est" usando J/rasp, generalmente el coloca el nombre y lo nico que tenemos que hacer es dar clic en guardar en el command'indo', pero a veces, con esos paradigmas de la programacin, J/rasp no lo coloca, es por tal ra+n que debemos estar seguros que el archivo ha sido guardado con el mismo nombre de la clase. 2or que de lo contrario lan+ar" una e$cepcin 5de la cual hablaremos m"s adelante6 y 7- correr" el programa. 2osteriormente, encontramos la sentencia ,ystem.out.println 56, el cual nos sirve para mandar informacin a pantalla, la cual ser" mostrada en la consola de )-,, y ser" m"s o menos as!9 ". In7est4:-e so;re 8os 2Ktodos de deC4n454En para 5o2p8e2entar e8 te2a Los m(todos son funciones que pueden ser llamadas dentro de la clase o por otras clases. La implementacin de un m(todo consta de dos partes, una declaracin y un cuerpo. La declaracin en Java de un m(todo se puede e$presar esquem"ticamente como9 Colocarse la definicin completa del m(todo fuera de la clase, convirti(ndose en una funcin inline. n Java, la definicin completa del m(todo debe estar dentro de la definicin de la clase y no se permite la posibilidad de m(todos inline, por lo tanto, Java no proporciona al programador distinciones entre m(todos normales y m(todos inline. Los m(todos pueden tener numerosos atributos a la hora de declararlos, incluyendo el control de acceso, si es est"tico o no est"tico, etc. La sinta$is utili+ada para hacer que un m(todo sea est"tico y su interpretacin, es semejante en Java y en C++. ,in embargo, la sinta$is utili+ada para establecer el control de acceso y su interpretacin, es muy diferente en Java y en C++. La lista de argumentos es opcional, tanto en Java como en C++, y en los dos casos puede limitarse a su m!nima e$presin consistente en dos par(ntesis, sin par"metro alguno en su interior. -pcionalmente, C++ permite utili+ar la palabra void para indicar que la lista de argumentos est" vac!a, en Java no se usa. Los par"metros, o argumentos, se utili+an para pasar informacin al cuerpo del m(todo. La sinta$is de la declaracin completa de un m(todo es la que se muestra a continuacin con los !tems opcionales en it"lica y los !tems requeridos en negrilla9 specificador#cceso, determina si otros objetos pueden acceder al m(todo y cmo pueden hacerlo. st" soportado en Java y en C++, pero la sinta$is e interpretacin es considerablemente diferente. ,tatic, indica que los m(todos pueden ser accedidos sin necesidad de instanciar un objeto del tipo que determina la clase. C++ y Java son similares en el soporte de esta caracter!stica. #bstract, indica que el m(todo no est" definido en la clase, sino que se encuentra declarado ah! para ser definido en una subclase 5sobreescrito6. C++ tambi(n soporta esta capacidad con una sinta$is diferente a Java, pero con similar interpretacin. 1inal, evita que un m(todo pueda ser sobreescrito. 7ative, son m(todos escritos es otro lenguaje. Java soporta actualmente C y C++. ,ynchroni+ed, se usa en el soporte de multithreading, que se ver" tambi(n en este ;utorial. listaNdeNargumentos, es la lista opcional de par"metros que se pueden pasar al m(todo ;hro's lista$cepciones, indica las e$cepciones que puede generar y manipular el m(todo. ;ambi(n se ver"n en este ;utorial a fondo las e$cepciones en Java. Va8or de Retorno de -n MKtodo n Java es imprescindible que a la hora de la declaracin de un m(todo, se indique el tipo de dato que ha de devolver. ,i no devuelve ningn valor, se indicar" el tipo void como retorno. Los m(todos y funciones en C++ pueden devolver una variable u objeto, bien sea por valor 5se devuelve una copia6, por puntero o por referencia. Java no soporta punteros, as! que no puede devolver nada por puntero. ;odos los tipos primitivos en Java se devuelven por valor y todos los objetos se devuelven por referencia. l retorno de la referencia a un objeto en Java es similar a devolver un puntero a un objeto situado en memoria din"mica en C++, e$cepto que la sinta$is es mucho m"s simple en Java, en donde el !tem que se devuelve es la direccin de la posicin en memoria din"mica donde se encuentra almacenado el objeto. 2ara devolver un valor se utili+a la palabra clave return. La palabra clave return va seguida de una e$presin que ser" evaluada para saber el valor de retorno. sta e$presin puede ser compleja o puede ser simplemente el nombre de un objeto, una variable de tipo primitivo o una constante. ,i un programa Java devuelve una referencia a un objeto y esa referencia no es asignada a ninguna variable, o utili+ada en una e$presin, el objeto se marca inmediatamente para que el reciclador de memoria en su siguiente ejecucin devuelve la memoria ocupada por el objeto al sistema, asumiendo que la direccin no se encuentra ya almacenada en ninguna otra variable. n C++, si un programa devuelve un puntero a un objeto situado en memoria din"mica y el valor de ese puntero no se asigna a una variable, la posibilidad de devolver la memoria al sistema se pierde y se producir" un memory lea., asumiendo que la direccin no est" ya disponible para almacenar ninguna otra variable. ;anto en Java como en C++ el tipo del valor de retorno debe coincidir con el tipo de retorno que se ha indicado en la declaracin del m(todoE aunque en Java, el tipo actual de retorno puede ser una subclase del tipo que se ha indicado en la declaracin del m(todo, lo cual no se permite en C++. n Java esto es posible porque todas las clases heredan desde un objeto ra!+ comn a todos ellos9 -bject. n general, se permite almacenar una referencia a un objeto en una variable de referencia que sea una superclase de ese objeto. ;ambi(n se puede utili+ar un interfa+ como tipo de retorno, en cuyo caso, el objeto retornado debe implementar dicho interfa+. No2;re de8 MKtodo l nombre del m(todo puede ser cualquier identificador legal en Java. Java soporta el concepto de sobrecarga de m(todos, es decir, permite que dos m(todos compartan el mismo nombre pero con diferente lista de argumentos, de forma que el compilador pueda diferenciar claramente cuando se invoca a uno o a otro, en funcin de los par"metros que se utilicen en la llamada al m(todo. l siguiente fragmento de cdigo muestra una clase Java con cuatro m(todos sobrecargados, el ltimo no es legal porque tiene el mismo nombre y lista de argumentos que otro previamente declarado9 ;odo lenguaje de programacin orientado a objetos debe soportar las caracter!sticas de encapsulacin, herencia y polimorfismo. La sobrecarga de m(todos es considerada por algunos autores como polimorfismo en tiempo de compilacin. n C++, dos versiones sobrecargadas de una misma funcin pueden devolver tipos diferentes. n Java, los m(todos sobrecargados siempre deben devolver el mismo tipo. MKtodos de Instan54a Cuando se incluye un m(todo en una definicin de una clase Java sin utili+ar la palabra clave static, estamos generando un m(todo de instancia. #unque cada objeto de la clase no contiene su propia copia de un m(todo de instancia 5no e$isten mltiples copias del m(todo en memoria6, el resultado final es como si fuese as!, como si cada objeto dispusiese de su propia copia del m(todo. Cuando se invoca un m(todo de instancia a trav(s de un objeto determinado, si este m(todo referencia a variables de instancia de la clase, en realidad se est"n referenciando variables de instancia espec!ficas del objeto espec!fico que se est" invocando. La llamada a los m(todos de instancia en Java se reali+a utili+ando el nombre del objeto, el operador punto y el nombre del m(todo. n C++, se puede acceder de este mismo modo o utili+ando una variable puntero que apunte al objeto Los m(todos de instancia tienen acceso tanto a las variables de instancia como a las variables de clase, tanto en Java como en C++. MKtodos Est3t45os Cuando una funcin es incluida en una definicin de clase C++, o un m(todo e incluso en una definicin de una clase Java, y se utili+a la palabra static, se obtiene un m(todo est"tico o m(todo de clase. Lo m"s significativo de los m(todos de clase es que pueden ser invocados sin necesidad de que haya que instanciar ningn objeto de la clase. n Java se puede invocar un m(todo de clase utili+ando el nombre de la clase, el operador punto y el nombre del m(todo. n C++, hay que utili+ar el operador de resolucin de "mbito para poder invocar a un m(todo de clase9 n Java, los m(todos de clase operan solamente como variables de claseE no tienen acceso a variables de instancia de la clase, a no ser que se cree un nuevo objeto y se acceda a las variables de instancia a trav(s de ese objeto. ,i se observa el siguiente tro+o de cdigo de ejemplo9 La modificacin de la variable numeroNdeNcapitulos no funciona porque se est" violando una de las reglas de acceso al intentar acceder desde un m(todo est"tico a una variable no est"tica. ;odas las clases que se derivan, cuando se declaran est"ticas, comparten la misma p"gina de variablesE es decir, todos los objetos que se generen comparten la misma +ona de memoria. Los m(todos est"ticos se usan para acceder solamente a variables est"ticas. n el cdigo anterior, si se llama al m(todo un%etodo 56 a trav(s de un puntero a funcin, no se podr!a acceder a var, porque al utili+ar un puntero a funcin no se pasa impl!citamente el puntero al propio objeto 5this6. ,in embargo, s! se podr!a acceder a var si fuese est"tica, porque siempre estar!a en la misma posicin de memoria para todos los objetos que se creasen de la clase <naClase. Paso de par32etros n C++, se puede declarar un m(todo en una clase y definirlo luego dentro de la clase 5bajo ciertas condiciones6 o definirlo fuera de la clase. # la hora de declararlo, es necesario indicar el tipo de argumentos que necesita, pero no se requiere indicar sus nombres 5aunque pueda hacerse6. # la hora de definir el m(todo s! tiene que indicarse el nombre de los argumentos que necesita el m(todo. n Java, todos los m(todos deben estar declarados y definidos dentro de la clase, y hay que indicar el tipo y nombre de los argumentos o par"metros que acepta. Los argumentos son como variables locales declaradas en el cuerpo del m(todo que est"n iniciali+adas al valor que se pasa como par"metro en la invocacin del m(todo. n Java, todos los argumentos de tipos primitivos deben pasarse por valor, mientras que los objetos deben pasarse por referencia. Cuando se pasa un objeto por referencia, se est" pasando la direccin de memoria en la que se encuentra almacenado el objeto. ,i se modifica una variable que haya sido pasada por valor, no se modificar" la variable original que se haya utili+ado para invocar al m(todo, mientras que si se modifica una variable pasada por referencia, la variable original del m(todo de llamada se ver" afectada de los cambios que se produ+can en el m(todo al que se le ha pasado como argumento. n C++, se puede pasar como par"metro un puntero que apunte a una funcin dentro de otra funcin, y utili+ar este puntero en la segunda funcin para llamar a la primera. sta capacidad no est" directamente soportada en Java. ,in embargo, en algunos casos, se puede conseguir casi lo mismo encapsulando la primero funcin como un m(todo de instancia de un objeto y luego pasar el objeto a otro m(todo, donde el primer m(todo se puede ejecutar a trav(s del objeto. ;anto en Java como en C++, los m(todos tienen acceso directo a las variables miembro de la clase. l nombre de un argumento puede tener el mismo nombre que una variable miembro de la clase. n este caso, la variable local que resulta del argumento del m(todo, oculta a la variable miembro de la clase. Cuando se instancia un m(todo se pasa siempre una referencia al propio objeto que ha llamado al m(todo, es la referencia this. #. Rea845e -n 2apa 5on5ept-a8 so;e e8 te2a anter4or. %. EHpon:a $& 7enta>as de para -t484@ar 4nstr-554ones repet4t47as s muy comn encontrar en los programas operaciones que se deben ejecutar un nmero repetido de veces en per!odos m"s o menos espaciados. ,i bien las instrucciones son las mismas, los datos sobre los que operan var!an. # nuestro alrededor, encontramos problemas que presentan esas caracter!sticas, por ejemplo9 el c"lculo de la nota final de los estudiantes de 2rogramacin 333, se reali+ar" tantas veces como alumnos hayan inscritos en dicha asignatura, el c"lculo del salario de los empleados de una empresa, etc. n estos casos la solucin que se dise4e para un solo grupo de datos se debe repetir tantas veces como sea necesario 5de acuerdo al nmero de estudiantes y de empleados para los ejemplos anteriores6. Los c"lculos simples o la manipulacin de peque4os conjuntos de datos se pueden reali+ar f"cilmente a mano, pero las tareas grandes o repetitivas son reali+adas con mayor eficacia por una computadora, ya que estas est"n especialmente preparadas para ello. 2ara repetir varias veces un proceso determinado haremos uso de los ciclos repetitivos, a los cuales se les conoce con el nombre de estructura repetitiva, estructura iterativa, la+o o bucle. n C, al igual que en Java podemos encontrar tres tipos de ciclos9 a ntrada #segurada 5'hile6 a Ciclo Controlado 2or Contador 5for6 a Gacer %ientras 5do... 'hile6 1-n54ona24ento de Un C458o <n ciclo, funciona de la siguiente manera9 vala una condicin de resultar cierta, reali+a una accin o bloque de acciones, luego vuelve a evaluar la condicin y si nuevamente resulta cierta, reali+a la 5s6 accin 5es6. Cuando la condicin de cmo resultado falso, se sale del ciclo y contina con la ejecucin normal del programa. A5-2-8ador: s una variable, que, como su nombre lo indica se encarga de acumular valores. sto se vuelve muy til, por ejemplo, cuando queremos encontrar la suma de los nmeros del A al H, en el acumulador, vamos guardando los valores de dichas cifras. 2uede ser tanto real como entera. ,u valor inicial, en la mayor!a de los casos es cero. Contador: s una variable de tipo entero, que nos ayuda, en el programa a contabili+ar el nmero de ejecuciones de una misma accin, de un grupo de alumnos etc. <n acumulador tiene tres valores distintos9 Va8or In454a8: es el valor con el cual iniciamos nuestro contador. /eneralmente es cero. sta asignacin puede hacerse cuando se declara la variable. Va8or 14na8: despu(s de la ejecucin del ciclo, el valor del contador, ser" distinto a su valor inicial, este puede ser mayo o menor que el mismo, todo depende si fue una cuenta creciente o decreciente. Va8or de Ca2;4o: s el valor Constante, en el cual se ir" incrementando nuestro contador, este puede ser positivo o negativoE es decir, si la cuanta se reali+a de manera ascendente o descendente. Bandera: Las variables tipo bandera son aquellas que slo admiten dos valores9 cierto o falso, true o false, hombre o mujer... etc. C458o de Entrada Ase:-rada La sinta$is es la siguiente9 MN48e 5condicin6 #ccinO 1unciona de la siguiente manera9 primero evala la condicin, si da como resultado cierta reali+a la accin, luego vuelve a evaluar la condicin, si su resultado es falso, se sale del ciclo y contina con la ejecucin del programa. Gay que tener mucho cuidado, cuando trabajamos con ciclos, ya que podemos caer en un ciclo infinito, es decir que nunca se sale de (l. 2or lo cual en las acciones debemos siempre colocar algo que haga que se modifique el resultado de l condicin, lo cual puede ser una bandera, un contador o un acumulador. C458o Contro8ado por 5ontador. n algunas ocasiones, sabemos a ciencia cierta el nmero de veces que se tiene que repetir una misma accin o bloque de acciones. P para ello es que nos sirve, esta estructura. ,u sinta$is es la siguiente9 1or 5valor inicialE condicinE incremento6 #ccinE )onde9 &alor inicial9 es el valor con el cual iniciali+amos nuestra variable de control. Condicin9 si la cumple, ejecuta la accin o acciones e incrementa o decrementa la variable de control, sino la cumple la condicin, se sale del ciclo. 3ncrementoE que puede ser positivo o negativo 5decremento6. C458o Do... PN48e s te ciclo funciona de la siguiente manera, reali+a la accin o conjunto de acciones, luego evala una condicin de resultar cierta vuelve a reali+ar la 5s6 accin 5es6. Cuando sea falsa, se sale del ciclo. 1or2ato: Do _ ,entenciaE . . b MN48e 5ce$pLd6E La diferencia fundamental, entre el ciclo 'hile y do...'hile, es que en este ultimo, las sentencias se reali+ar"n por lo menos una ve+, en cambio, con 'hile, solo se cumplir"n mientras se cumpla la condicin, lo cual puede ser nunca. ntre las ventajas de utili+ar estas instrucciones repetitivas, tenemos9 Las sentencias repetitivas o de bucle permiten la ejecucin repetida de bloques de sentencias Los bucles de tipo 12ile y for comprueban si deben continuar repitiendo la sentencia o bloque de sentencias que forman el cuerpo del bucle antes de que el cuerpo del bucle se ejecute, mientras que el bucle do312ile lo hace despu(s de haberlo ejecutado. Llevar el cdigo en orden Como empie+a un bloque, tambi(n lo termina. 2ermite que en un programa se estable+can diferentes frmulas o procedimientos, cada uno en su bucle, sin afectar el resto del cdigo del programa. 2one condicin y de acuerdo a la decisin que se tome se llega a una conclusin o resultado. ,e pueden incorporar subprogramas, y se ejecutan segn la sentencia asignada. 2ermite tomar decisiones mltiples, presenta diversas posibilidades 8eali+ar una accin sucesivamente mientras se cumpla una determinada condicin. 2ermite ver dnde hay un error, cuando se ejecuta, para poderlo depurar, en ese bloque. +. Rea845e -n 2apa 5on5ept-a8 5on 2& tKr24nos so;re t4po de datos J de58ara54ones. CONCLUSION Creemos finalmente que los datos y el desarrollo de los ejercicios anteriormente resueltos servir"n eficientemente para profundi+ar nuestra base lgica en lo que concierne tanto lo que es el lenguaje de programacin Java y sus fundamentos, as! como lo que abarca a la estructura y el comportamiento que compone a un objeto, adem"s para aumentar nuestros conocimientos sobre el tema, que de una u otra manera, ser" aplicado en un determinado momento de nuestra vida laboral. Java fue pensado originalmente para utili+arse en cualquier tipo de electrodom(stico pero la idea fracas. <no de los fundadores de ,un rescat la idea para utili+arla en el "mbito de 3nternet y convirtieron a Java en un lenguaje potente, seguro y universal gracias a que lo puede utili+ar todo el mundo y es gratuito. <na de los primeros triunfos de Java fue que se integr en el navegador 7etscape y permit!a ejecutar programas dentro de una p"gina Deb, hasta entonces impensable con el G;%L n la actualidad es un lenguaje muy e$tendido y cada ve+ cobra m"s importancia tanto en el "mbito de 3nternet como en la inform"tica en general. st" desarrollado por la compa4!a ,un %icrosystems con gran dedicacin y siempre enfocado a cubrir las necesidades tecnolgicas m"s punteras. # la vanguardia de la tecnolog!a que va saliendo al mercado a diario, d!a a d!a Java se utili+a en un amplio abanico de posibilidades y casi cualquier cosa que se puede hacer en cualquier lenguaje se puede hacer tambi(n en Java y muchas veces con grandes ventajas. 2ara lo que nos interesa a nosotros, con Java podemos programar p"ginas Deb din"micas, con accesos a bases de datos, utili+ando F%L, con cualquier tipo de cone$in de red entre cualquier sistema. n general, cualquier aplicacin que deseemos hacer con acceso a trav(s Deb se puede hacer utili+ando Java. 2ara desarrollar todo este material, tuvimos el acompa4amiento tutorial especiali+ado del tutor encargado 5por el sistema virtual6 y del asesor presencial del curso quienes nos proporcionaron la informacin necesaria y que a la ve+ nos oriento para corregir los datos errneos que nos permitieron iniciar y culminar satisfactoriamente el producto de aprendi+aje. BIBLIOGRA1*A http9SS'''.javahispano.orgScontenidosSesSintroduccrionNaNlaNprogramacrionNorien tadaNaNobjetS http9SS'''.desarrollo'eb.comSarticulosS>::A.php http9SSprogramacionudb.ohlog.comSprogramacion@orientada@a@objetos.oh?BAIB.html http9SStvdi.det.uvigo.esSeavilasS<%LSnode:C.html http9SSsophia.javeriana.edu.coSeacarrilloS2--S%aterialSClase?@-bjetos@Clase.pdf http9SSoc'.upm.esSlenguajes@y@sistemas@informaticosSprogramacion@en@java@ http9SSiSContenidosSLectura-bligatoriaS?@estructuradeunprogramaenjava.pdf http9SSes.articlesnatch.comS#rticleS)ifferences@bet'een@C@@and@JavaSCL>>>> http9SSes.'i.iboo.s.orgS'i.iS2rogramacifC:f0:nNenNJavaNSN2rimerNprograma http9SS'''.programacion.comSjavaStutorialSprimeraNta+aS:S http9SS'''.itapi+aco.edu.m$SpaginasSJava;utSfroufeSparteCScapC@C.html http9SS>IC.HB.B.>CSerubenS?AAHS3ntro2rogSstructurasf?ArepetitivasNjava.pdf http9SSyosh:C.tripod.comSid>.html http9SSyosh:C.tripod.comSid?.html http9SS'''.lenguajes@de@programacion.comSprogramacion@orientada@a@bjetos.shtml http9SSes.'i.ipedia.orgS'i.iS2rogramacifC:f0:nNestructurada http9SSes.'i.ipedia.orgS'i.iS2rogramacifC:f0:nNmodular http9SSes.'i.ipedia.orgS'i.iSLenguajeNdeNprogramacifC:f0:nN#da http9SSes.'i.ipedia.orgS'i.iS#ction,cript http9SSes.'i.ipedia.orgS'i.iSLenguajeNdeNprogramacifC:f0:nNJava http9SSes.'i.ipedia.orgS'i.iSLenguajeNdeNprogramacifC:f0:nN2ascal http9SSes.'i.ipedia.orgS'i.iS%odula@: