Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
ac fundamentos de programación (unidad 3) programación básica en Java (3) Para ver una copia complet a de la l icencia, acudir a la dirección ht t p: / / creat ivecommons.org/ l icenses/ by-nc-sa/ 2.5/ es/ legalcode.es http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es� (5) (3) programación básica en Java esquema de la unidad (3) programación básica en Java 5 (3.1) historia de Java ___________________________________________________ 8 (3.1.1) los antecedentes de Java. influencia de C y C++ 8 (3.1.2) la llegada de Java 10 (3.1.3) Java y JavaScript 12 (3.2) características de Java _____________________________________________ 12 (3.2.1) construcción de programas en Java. bytecodes 12 (3.2.2) seguridad 14 (3.2.3) tipos de aplicaciones Java 15 (3.2.4) plataformas 15 (3.3) empezar a trabajar con Java ______________________________________ 16 (3.3.1) el kit de desarrollo Java (SDK) 16 (3.3.2) versiones de Java 16 (3.3.3) instalación del SDK 19 (3.3.4) entornos de trabajo 22 (3.4) escritura de programas Java ______________________________________ 24 (3.4.1) codificación del texto 24 (3.4.2) notas previas 24 (3.4.3) el primer programa en Java 25 (3.5) ejecución de programas Java _____________________________________ 26 (3.5.1) proceso de compilación desde la línea de comandos 26 (3.6) javadoc _________________________________________________________ 27 (3.7) import __________________________________________________________ 29 (3.8) variables ________________________________________________________ 30 (3.8.1) introducción 30 (3.8.2) declaración de variables 31 (3.8.3) asignación 31 fundamentos de programación (unidad 3) programación básica en Java (6) (3.9) tipos de datos primitivos _________________________________________ 32 (3.9.1) enteros 32 (3.9.2) números en coma flotante 33 (3.9.3) booleanos 34 (3.9.4) caracteres 34 (3.9.5) conversión entre tipos (casting) 35 (3.9.6) ámbito de las variables 35 (3.10) operadores _____________________________________________________ 36 (3.10.1) introducción 36 (3.10.2) operadores aritméticos 36 (3.10.3) operadores condicionales 37 (3.10.4) operadores de BIT 38 (3.10.5) operadores de asignación 38 (3.10.6) operador ? 39 (3.10.7) precedencia 39 (3.11) constantes _______________________________________________________ 40 (3.12) lectura y escritura por teclado ____________________________________ 41 (3.12.1) escritura 41 (3.12.2) lectura 41 (3.13) la clase Math ___________________________________________________ 43 (3.13.2) números aleatorios 45 Apéndice (I) Eclipse 46 (I.i) entornos de desarrollo integrado (IDE) _____________________________ 46 (I.ii) descarga de Eclipse _______________________________________________ 47 (I.iii) aspecto de Eclipse ________________________________________________ 50 (I.iii.i) las perspectivas de Eclipse 50 (I.iv) crear proyectos en Eclipse _________________________________________ 51 (I.iv.i) crear proyectos básicos de Java 51 (I.iv.ii) modificar recursos del proyecto 53 (I.iv.iii) crear programas Java (clases) 53 (I.iv.iv) cambiar el nombre a los elementos de Java 54 (I.v) ejecución de programas Java _____________________________________ 55 (I.vi) ayudas al escribir código _________________________________________ 55 (I.vi.i) esquema flotante (quick outline) 55 (I.vi.ii) asistente de contenido 55 (I.vi.iii) plantillas de código 57 (I.vi.iv) dar formato al código 59 (I.vi.v) errores 59 (I.vii) modificar las preferencias del editor ______________________________ 60 (I.vii.i) opciones generales 60 (I.vii.ii) realizar acciones al guardar 60 (I.vii.iii) asistencia de contenido 61 (I.vii.iv) coloreado de la sintaxis 61 (I.vii.v) marcar apariciones 61 (I.vii.vi) apartado tecleo (typing) 61 (I.vii.vii) plantillas 62 (I.vii.viii) estilo del código 65 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (7) (I.vii.ix) limpiar 67 (I.vii.x) exportar preferencias 69 (I.viii) creación de javadoc con Eclipse __________________________________ 70 Apéndice (II) Netbeans 73 (II.i) introducción ______________________________________________________ 73 (II.ii) instalación _______________________________________________________ 73 (II.ii.i) comprobación de la plataforma Java instalada 76 (II.iii) aspecto inicial de Netbeans ______________________________________ 76 (II.iii.i) cerrar y abrir paneles 77 (II.iii.ii) iconizar un panel 77 (II.iii.iii) mover paneles 77 (II.iii.iv) mostrar y quitar barras de herramientas 77 (II.iv) proyectos de Netbeans __________________________________________ 78 (II.iv.i) crear proyectos 78 (II.iv.ii) la ventana del proyecto 79 (II.iv.iii) crear paquetes 80 (II.iv.iv) crear nuevas clases 80 (II.iv.v) vistas del proyecto 81 (II.iv.vi) propiedades del proyecto 82 (II.iv.vii) borrar un proyecto 83 (II.iv.viii) importar un proyecto de Eclipse 83 (II.v) compilar y ejecutar programas ___________________________________ 84 (II.v.i) compilar 84 (II.v.ii) ejecutar la clase principal del proyecto 84 (II.v.iii) preparar la distribución 84 (II.vi) javadoc _________________________________________________________ 85 (II.vi.i) añadir la documentación Java a Netbeans 85 (II.vi.ii) generar la documentación Javadoc del proyecto 85 (II.vii) edición de código _______________________________________________ 86 (II.vii.i) aspecto de la ventana de código 86 (II.vii.ii) ayudas al escribir código 87 (II.vii.iii) búsqueda y reemplazo de texto en el código 87 (II.vii.iv) dar formato al código 88 (II.vii.v) modificación de opciones del editor 88 (II.vii.vi) reestructurar 89 (II.vii.vii) plantillas generales 90 (II.vii.viii) comparar archivos 91 (II.vii.ix) exportar e importar las opciones 92 fundamentos de programación (unidad 3) programación básica en Java (8) (3.1) historia de Java (3.1.1) los antecedentes de Java. influencia de C y C++ Java es un lenguaj e de programación que se desarrol ló para sat isfacer las nuevas necesidades que requería la creación de apl icaciones a f inales de los 90. Desde los primeros lenguaj es aparecidos en los años cincuent a, hast a la aparición de Java, la ciencia de la creación de programas ha suf rido numerosas t ransformaciones. Todas el las se basan en int ent ar que los programadores y programadoras consigan t rabaj ar de la forma más ef icient e posible. La búsqueda del lenguaj e perfect o es la búsqueda del lenguaj e que sea más fácil de aprender y que ot orgue más posibil idades a aquel los programadores y programadoras que lo ut i l icen. En general ambos concept os han dado lenguaj es muy diversos. Por ej emplo, el lenguaj e Basic es un lenguaj e muy fácil de aprender, pero en cuant o se quieren resolver problemas compl icados, resul t a inef icaz. Por ot ro lado el lenguaj e C es un lenguaj e muy poderoso, capaz de crear t odo t ipo de apl icaciones; pero es bast ant e más di f ícil de aprender. Java int ent a cumpl ir ambas premisas, pero de forma equil ibrada: ni es un lenguaj e muy fácil de aprender, ni es un lenguaj e capaz de real izar t odo t ipo de apl icaciones. En real idad Java es uno de los muchos lenguaj es inf luenciados por el exit oso lenguaje C . Est e lenguaj e ha sido el favorit o de los creadores de apl icaciones (especialment e de sist emas) en los años 60 y 70. la influencia del lenguaje C La aparición del lenguaj e Fort ran , supuso la creación del primer lenguaj e de al t o nivel . Por primera vez el programador podía programar un poco más alej ado de la lógica de la máquina, es decir cada vez más lej os del lenguaj e de unos y ceros que es el único que los comput adores reconocen. Poco a poco aparecieron cada vez más lenguajes con la pret ensión de mej orar la forma de programar (Lisp , Pascal, Fortran, Cobol ,…). Algunos de el los siguen vigent es incluso hoy en día. La mayoría se especial izaron en diferent es t ipos de apl icaciones (Lisp para apl icaciones de ingeniería, Pascal para aprendizaj e de la ciencia de la programación, Cobol para apl icaciones de gest ión,…). El caso es que para crear apl icaciones de al t o rendimient o y de sist ema, los programadores seguía ut i l izando el lenguaj e Ensamblador . Por el lo a f inales de los 60 aparece el lenguaj e C. 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (9) C aport ó a los lenguaj es exist ent es las siguient es vent aj as: ♦ Un lenguaj e de nivel medio (más cercano a la forma de pensar del ordenador) que permit ía t ant o ut i l izar est ruct uras de los lenguaj es de al t o nivel (funciones, bucles avanzados,…) como inst rucciones de nivel baj o (punt eros) ♦ Una sint axis que permit e escribir código de forma rápida ♦ Un lenguaj e pot ent e capaz de crear t odo t ipo de apl icaciones ♦ Un lenguaj e capaz de ut i l izar t odo t ipo de est ruct uras est át icas y dinámicas y de manej ar t odos los recursos de la máquina. Sin embargo C t ambién t iene sus problemas. Uno de los principales es que cuando la apl icación crece, el código es muy dif ícil de manej ar. Las t écnicas de programación est ruct urada y programación modular, que en C pueden ser apl icadas, pal iaban algo el problema. Pero fue la programación orientada a objetos (POO u OOP) la que mej oró not ablement e el sit uación. No obst ant e C sigue siendo uno de los lenguaj es más ut il izados y académicament e sigue ut i l izándose por su versat il idad, que permit e aprender t odas las caract eríst icas de la programación clásica. De hecho a un buen programador de lenguaj e C no le debería ser dif ícil aprender a programar en ot ros lenguaj es (una vez que conozca las bases de la programación or ient ada a obj et os). la influencia de la programación orientada a objetos La POO permit e fabricar programas de forma más parecida al pensamient o humano. De hecho simpl if ica el problema dividiéndolo en obj et os y permit iendo cent rarse en cada obj et o, para de esa forma el iminar la complej idad. Cada obj et o se programa de forma aut ónoma y esa es la principal virt ud. Al aparecer la programación orient ada a obj et os (en los años set ent a), aparecieron varios lenguaj es orient ados a obj et os y t ambién se real izaron versiones orient adas a obj et os (o semiorient adas a obj et os) de lenguaj es clásicos. Una de las más famosas adapt aciones fue la que capacit ó al lenguaj e C a ut i l izar obj et os. A ese lenguaj e se le l lamó C++ indicando con esa simbología que era un increment o del lenguaj e C (en el lenguaj e C, como en Java, los símbolos ++ signi f ican increment ar). Las vent aj as que añadió C++ a C fueron: ♦ Añadir soport e para obj et os (POO) ♦ Librerías de clases de obj et os (como MFC1 ♦ Todo lo bueno del C (incluso compat ibil idad con est e lenguaj e) por ej emplo) que facil it aban el uso de código ya creado para las nuevas apl icaciones. 1 Microsoft Foundat ion Classes , l ibrería creada por Microsof t para facil i t ar la creación de programas para el sistema Windows. fundamentos de programación (unidad 3) programación básica en Java (10) C++ pasó a ser el lenguaj e de programación más popular a principios de los 90 y sigue siendo un lenguaj e muy ut il izado. Muchas personas le consideran el lenguaj e de programación más pot ent e. Ot ras adapt aciones famosas de lenguaj es clásicos a lenguaj es orient ados a obj et os, fueron: ♦ El paso de Pascal a Turbo Pascal y post eriorment e a Delphi . ♦ El paso de Basic a QuickBasic y después a Visual Basic . A pesar de las evident es vent aj as del lenguaj e C++. Tiene sus ser ios inconvenient es. ♦ Su complej idad ♦ El hecho de ser un lenguaje híbrido , es decir que permit e programar de forma no orient ada a obj et os, lo que provoca malas práct icas de programador. ♦ Los punt eros, que requieren un especial cuidado por part e de la programadora o programador, ya que son los responsables de los errores más pel igrosos y dif íciles de det ect ar. ♦ El que sea un lenguaj e apt o para crear programas dañinos como virus y programas espías. ♦ No es un lenguaj e apt o para t ransmit irse en redes de ordenadores; especialment e en Int ernet (porque al ser compilado requiere cargar t odo el código para ser compilado). La l legada de Int ernet propició la creación de lenguaj es más apt os para su uso en est a red de redes. (3.1.2) la llegada de Java En 1991, la empresa Sun Microsystems crea el lenguaj e Oak (de la mano del l lamado proyecto Green ). Mediant e est e lenguaj e se pret endía crear un sist ema de t elevisión int eract iva. Est e lenguaj e sólo se l legó a ut i l izar de forma int erna. en la empresa. Su propósit o era crear un lenguaj e independient e de la plat aforma para uso en disposit ivos elect rónicos. Se int ent aba con est e lenguaj e pal iar uno de los problemas fundament ales del C++; que consist e en que al compilar se produce un f ichero ej ecut able cuyo código sólo vale para la plat aforma en la que se real izó la compilación. Sun deseaba un lenguaj e para programar pequeños disposit ivos elect rónicos. La dif icul t ad de est os disposit ivos es que cambian cont inuament e y para que un programa funcione en el siguient e disposit ivo aparecido, hay que rescribi r el código. Por eso Sun quería crear un lenguaj e independiente del disposit ivo . En 1995 Oak pasa a l lamarse Java . Java es un import ant e export ador de café; por eso en EEUU se conoce como Java al café, t omarse una t aza de Java 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (11) es t omarse una t aza de café (aunque no sea precisament e de Java). Parece que los desarrol ladores de Java t omaron muchas t azas de Java . 2 Ese año se da a conocer al públ ico. y adquiere not oriedad rápidament e, casi desde su lanzamient o. Durant e est os años se ha mej orado y se le ha revisado. La versión 1.2 modif icó t ant o Java que se la l lamó Java 2 y t ambién a sus descendient es (Java 1.3 y Java 1.4). Act ualment e el número 2 se ha quit ado del nombre y la úl t ima versión se conoce como Java v6 . En general la sint axis de Java es similar a C y C++. Pero posee est as diferencias: ♦ No hay punt eros (lo que le hace más seguro y fácil de manej ar) ♦ No es híbrido, sino t ot alment e orient ado a obj et os (aunque muchos programadores t ienen reservas respect o a est a aseveración). Los lenguaj es orient ados a obj et os híbridos permit en crear apl icaciones no orient adas a obj et os. ♦ Muy preparado para ser ut i l izado en redes TCP/ IP y especialment e en Int ernet ♦ Implement a excepciones (cont rol de errores) de forma nat iva ♦ Es un lenguaj e int erpret ado (lo que acelera su ej ecución remot a, aunque provoca que las apl icaciones Java sean más lent as en la ej ecución que las apl icaciones escrit as en lenguaj es compilados como C++). ♦ Permit e múlt iples hilos de ej ecución, es decir que se ej ecut en var ias t areas en paralelo. ♦ Admit e f irmas digit ales ♦ Tipos de dat os y cont rol de sint axis más rigurosa que los lenguaj es C y C++, lo que facil it a la gest ión de errores ♦ Es independient e de la plat aforma, ej ecut able en cualquier sist ema con máquina virt ual La úl t ima vent aj a (quizá la más import ant e) se consigue ya que el código Java no se compila, sino que se precompila , de t al forma que se crea un código intermedioque no es direct ament e ej ecut able. No es código máquina. Para ej ecut arle hace fal t a pasarle por un int érpret e que va int erpret ando cada l ínea. Ese int érpret e suele ser la máquina virtual de Java . Por lo que cualquier sist ema que posea máquina virt ual de Java, podrá ej ecut ar código precompilado en Java. Más adelant e se expl ica est e proceso en det al le. 2 La simbología del café sigue present e en Java. El logot ipo of icial de Java es una t aza humeant e de café. Mucho sof t ware desarrollado para Java ha mant enido esa simbología: Visual Café, Kawa (café en ruso),… fundamentos de programación (unidad 3) programación básica en Java (12) (3.1.3) Java y JavaScript Una de las confusiones act uales la provoca el parecido nombre que t ienen est os dos lenguaj es. Sin embargo no t ienen mucho que ver ent re sí. Sun creó Java y la empresa Netsca pe creó JavaScript . Java es un lenguaj e complet o que permit e real izar t odo t ipo de apl icaciones. JavaScript es un lenguaj e que permit e incrust ar código dent ro de las páginas web. La f inal idad de JavaScript es mej orar las páginas web, hacerlas más vist osas y dinámicas. La f inal idad de Java es crear apl icaciones de t odo t ipo (aunque est á muy preparado para crear sobre t odo apl icaciones en red). Aunque la sint axis t iene element os en común, desde luego no se parece t ant o. De hecho Javascript es mucho más fácil que Java. (3.2) características de Java (3.2.1) construcción de programas en Java. bytecodes compilación tradicional En el mundo de la programación siempre se ha hablado de lenguajes compilados y de lenguajes interpretados . En el segundo caso, un programa int érpret e se encarga de t raducir cada l ínea al código máquina correspondient e. Los lenguaj es int erpret ados a part ir de los set ent a se han dej ado de usar porque no eran los apropiados para conseguir código ef icient e. Por el cont rario, los lenguaj es compilados producen código máquina anal izando t odas las l íneas de código en conj unt o. Los compiladores buscan el mej or código máquina posible. El resul t ado del proceso de compilación (en real idad de compilación y enlazado) es un archivo ejecutable . Un archivo ej ecut able es un programa que se puede lanzar direct ament e en el sist ema operat ivo; en el caso de Windows o Linux simplement e con hacer doble cl ic sobre el archivo, se ej ecut an sus inst rucciones. La vent aj a es que los programas ej ecut ables no necesit an compilarse de nuevo, son programas t erminados. El problema es que los sist emas operat ivos ut i l izan diferent es t ipos de archivos ej ecut ables: es decir, un archivo ej ecut able en Linux no sería compat ible con Windows. 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (13) Ilust ración 3-1, Proceso de compilación de un programa C++ en Window s y Linux la "compilación" en Java En Java el código no se t raduce a código ej ecut able. En Java el proceso se conoce como precompilación y sirve para producir un archivo (de ext ensión class ) que cont iene código que no es direct ament e ej ecut able (no es código Java). Es un código int ermedio l lamado bytecode (t ambién se le l lama J- code ). Al no ser ej ecut able, el archivo class no puede ej ecut arse direct ament e con un doble cl ic en el sist ema. El byt ecode t iene que ser interpretado (es decir, t raducido l ínea a l ínea) por una apl icación conocida como la máquina virtual de Java (JVM). Hoy se conoce como JRE (Java Runt ime Environmen t , ent orno de ej ecución de Java). La gran vent aj a es que el ent orno de ej ecución de Java lo fabrica Sun para t odas las plat aformas; lo que signif ica que un archivo class se puede ej ecut ar en cualquier ordenador o máquina que incorpore el JRE. Sólo hay una pega, si programamos ut il izando por ej emplo la versión 1.6 de Java, el ordenador en el que queramos ej ecut ar el programa deberá incorporar el JRE al menos de la versión 1.6. El JRE o la máquina virt ual de Java son un programas muy pequeños y que se dist ribuyen grat uit ament e para práct icament e t odos los sist emas operat ivos. A la forma de producir código f inal de Java se la l lama JIT (Just In Time , j ust o en el moment o) ya que el código ej ecut able se produce sólo en el inst ant e de ej ecución del programa. Es decir, no hay en ningún moment o código ej ecut able. fundamentos de programación (unidad 3) programación básica en Java (14) Ilust ración 3-2, Proceso de compilación de un programa Java (3.2.2) seguridad Al int erpret ar el código, el JRE puede del imit ar las operaciones pel igrosas, con lo cual la seguridad es fácilment e cont rolable. Además, Java el imina las inst rucciones dependient es de la máquina y los punteros que generaban t erribles errores en C y la posibil idad de generar programas para at acar sist emas. Tampoco se permit e el acceso direct o a la memoria y recursos del ordenador. La primera l ínea de seguridad de Java es un verificador del bytecode que permit e comprobar que el comport amient o del código es correct o y que sigue las reglas del lenguaj e Java. Normalment e los compiladores de Java no pueden generar código que se sal t e las reglas de seguridad de Java. Pero un programador malévolo podría generar art i f icialment e byt ecode que se sal t e las reglas. El verif icador int ent a el iminar est a posibil idad. Hay un segundo paso que ver if ica la seguridad del código que es el verificador de clase que es el programa que proporciona las clases necesarias al código. Lo que hace es asegurarse que las clases que se cargan son realment e las del sist ema original de Java y no clases creadas reemplazadas art if icialment e. Finalment e hay un administrador de seguridad que es un programa conf igurable que permit e al usuario indicar niveles de seguridad a su sist ema para t odos los programas de Java. Hay t ambién una forma de seguridad relacionada con la conf ianza. Est o se basa es saber que el código Java procede de un sit io de conf ianza y no de una fuent e no ident i f icada. Se consigue gracias a que en Java se permit e añadir f irmas digit ales al código para veri f icar la aut oría del mismo. 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (15) (3.2.3) tipos de aplicaciones Java applets Son programas Java pensados para ser colocados dent ro de una página web. Pueden ser int erpret ados por cualquier navegador con capacidades Java. Est os programas se insert an en las páginas usando una et iquet a especial (como t ambién se insert an vídeos, animaciones f lash u ot ros obj et os). Los applet s son programas independient es, pero al est ar incluidos dent ro de una página web las reglas de ést as le afect an. Normalment e un applet sólo puede act uar sobre el navegador. Hoy día mediant e applet s se pueden int egrar en las páginas web apl icaciones mult imedia avanzadas (incluso con imágenes 3D o sonido y vídeo de al t a cal idad) aplicaciones de consola Son programas independient es al igual que los creados con los lenguaj es t radicionales. aplicaciones gráficas Aquel las que ut i l izan las clases con capacidades gráf icas (como awt por ej emplo). servlets Son apl icaciones que se ej ecut an en un servidor de apl icaciones web y que como resul t ado de su ej ecución resul t a una página web. midlet Apl icación creada con Java para su ej ecución en sist emas de propósit o simple o disposit ivos móviles. Los j uegos Java creados para t eléfonos móviles son midlet s. (3.2.4) plataformas Act ualment e hay t res ediciones de Java. Cada una de ellas se corresponde con una plat aforma que incluye una serie de funciones, paquet es y element os del lenguaj e (es decir la API , Applicat ion Program Interface ). Java SE Java Standard Edit ion . Ant es se la conocía como J2SE (el dos se ref iere a Java 2). Permit e escribir código Java relacionado con la creación de apl icaciones y applet s en lenguaj e Java común. Es decir, es el Java normal. La úl t ima versión del kit de desarrol lo de apl icaciones en est a plat aforma3 3 En el moment o de escribir est e manual es la JSE 1.6.14. fundamentos de programación (unidad 3) programación básica en Java (16) Java EE Java Enterprise Edit ion . Todavía conocida como J2EE. Pensada para la creación de apl icaciones Java empresariales y del lado del servidor. Su úl t ima versión es la 1.4 Java ME Java Mobile Edit ion. También conocida como J2ME. Pensada para la creación de apl icaciones Java para disposit ivos móviles. (3.3) empezar a trabajar con Java (3.3.1) el kit de desarrollo Java (SDK) Para escribir en Java hacen fal t a los programas que real izan el precompilado y la int erpret ación del código, Hay ent ornos que permit en la creación de los byt ecodes y que incluyen herramient as con capacidad de ej ecut ar apl icaciones de t odo t ipo. El más famoso (que además es grat uit o) es el Java Developer Kit (JDK) de Sun, que se encuent ra disponible en la dirección ht t p: / / j ava.sun.com/ j avase/ downloads. Act ualment e ya no se le l lama así sino que se le l lama SDK y al descargarlo de Int ernet hay que elegir la plat aforma deseada (SE, EE o ME). (3.3.2) versiones de Java Como se ha coment ado ant eriorment e, para poder crear los byt ecodes de un programa Java, hace fal t a el SDK de Sun. Sin embargo, Sun va renovando est e kit act ual izando el lenguaj e. De ahí que se hable de Java 1.1, Java 1.2, et c. Los nombres de los dist int os SDK y del lenguaj e correspondient e, est án ref lej ados en est a t abla: Versión del SDK para la versión est ándar de Java Nombre que se le da al kit de desarrol lo 1.1 JDK 1.1 1.2 J2SE 1.2 1.3 J2SE 1.3 1.4 J2SE 1.4 1.5 J2SE 1.5 1.6 Java SE 6 1.7 Java SE 7 Desde la versión 1.2 se habla de Java 2. Desde la versión 1.6 se ha abandonado la t erminología Java 2 y ahora se habla de Java 6 y Java 7 para las versiones 1.6 y 1.7 del kit de desarrol lo. Cada versión t iene varias revisiones, así la versión 1.6.7 del SDK indica versión 6 de Java, revisión 7. http://java.sun.com/javase/downloads� 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (17) Java 1.0 (JDK 1.0) Fue la pr imera versión de Java y propuso el marco general en el que se desenvuelve Java. est á of icialment e obsolet o, pero hay t odavía muchos cl ient es con est a versión. Java 1.1 (JDK 1.1) Mej oró la versión ant er ior incorporando las siguient es mej oras: ♦ JDBC, API de acceso a bases de dat os ♦ RMI l lamadas a mét odos remot os. Es una t écnica de comunicación de procesos en red ♦ JavaBeans , component es independient es reut il izables. ♦ Int ernacional ización para crear programas adapt ables a t odos los idiomas ♦ Clases int ernas Java 2 (J2SE 1.2) Apareció en Diciembre de 1998 al aparecer el JDK 1.2. Incorporó not ables mej oras como por ej emplo: ♦ JFC. Java Foundat ion classes . El conj unt o de clases de t odo para crear programas más at ract ivos de t odo t ipo. Dent ro de est e conj unt o est án: ♦ El paquete Swing . Mej orando not ablement e al ant erior paquet e AWT. Se t rat a de t odo un conj unt o de clases que permit en desarrol lar fácilment e ent ornos de vent anas. Es part e de JFC. ♦ Enterprise Java beans. Para la creación de component es para apl icaciones dist r ibuidas del lado del servidor ♦ Java Media . Conj unt o de paquet es para crear paquet es mult imedia: • Java 2D. Paquet e (part e de JFC) que permit e crear gráf icos de al t a cal idad en los programas de Java. • Java 3D. Paquet e (part e de JFC) que permit e crear gráf icos t ridimensionales. • Java Media Framework . Paquet e marco para crear element os mult imedia • Java Speech . Para reconocimient o de voz. • Java Sound . Audio de al t a cal idad • Java TV . Televisión int eract iva ♦ JNDI. Java Naming and Directory Interface . Servicio general de búsqueda de recursos. Int egra los servicios de búsqueda más populares (como LDAP por ej emplo). fundamentos de programación (unidad 3) programación básica en Java (18) ♦ Java Servlets . Herramient a para crear apl icaciones de servidor web (y t ambién ot ros t ipos de apl icaciones). ♦ Java Cryptography . Algorit mos para encript ar y desencript ar. ♦ Java Help . Creación de sist emas de ayuda. ♦ Jini . Permit e la programación de elect rodomést icos. ♦ Java card . Versión de Java dirigida a pequeños disposit ivos elect rónicos. ♦ Java IDL. Lenguaj e de def inición de int erfaz. Permit e crear apl icaciones t ipo CORBA (plat aforma de desarrol lo de sist emas dist ribuidos) ♦ Clases para la creación de colecciones Java 1.3 (J2SE 1.3) ♦ Se ut il iza la máquina virt ual de Hotspot (más rápida y segura). ♦ Se modif ica RMI para que t rabaj e con CORBA ♦ JPDA, Java Plat form Debugger Architectura Java 1.4 (J2SE 1.4) ♦ Aparecen las aserciones (assert ) ♦ Expresiones regulares est ilo Perl . ♦ NIO. Nuevo int erfaz de ent rada y sal ida de dat os. ♦ JAXP. API de desarrol lo de document os XML. Java 1.5 (J2SE 1.5) ♦ Aparecen las plant il las ♦ Met adat os ♦ Autoboxing , conversión aut omát ica de t ipos a t ipos envolvent es. ♦ Enumeraciones ♦ Argument os variables (varargs ) ♦ Mej ora del bucle for Java 1.6 (Java SE 6) ♦ Combinación con ot ros lenguaj es (PHP, Ruby , Per l ,…) ♦ Últ imas especif icaciones de JAX-WS 2.0, JAXB 2.0 , STAX y JAXP para crear servicios web. 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (19) (3.3.3) instalación del SDK Es un requisit o previo ant es de programar en lenguaj e Java. en Windows Desde la página de descarga ht t p: / / j ava.sun.com/ j avase/ downloads se el ige la versión deseada del ent orno de desarrol lo. Una vez descargado el programa de inst alación del SDK, bast a con ej ecut arle. Hay que prest ar at ención al direct or io en el que se ha inst alado el SDK. La razón es que debemos modif icar t res var iables del sist ema (variables que ut i l iza Windows para la conf iguración correct a de comandos). Son: ♦ PATH. Variable que cont iene rut as por defect o a los programas que indiquemos. La razón es que por ej emplo el comando java debe de est ar disponible est emos en la carpet a que est emos. Dicho comando (j unt o con el rest o de comandos del SDK) est á en la carpet a bin dent ro de la carpet a en la que hemos inst alado el SDK. Ej emplo de cont enido de la var iable path : PATH=C:\ WINNT\ SYSTEM32;C:\ WINNT;C:\ WINNT\ SYSTEM32\ WBE M;C:\ Archivos de programa\ Microsoft Visual Studio\ Common\ Tools\ WinNT;C:\ Archivos de programa\ Microsoft Visual Studio\ Common\ MSDev98\ Bin;C:\ Archivos de programa\ Microsoft Visual Studio\ Common\ Tools;C:\ Archivos de programa\ Microsoft Visual Studio\ VC98\ bin;C:\ Arch ivo s de program a\ java\ jsdk1.6 .2\ bin ♦ JAVA_HOME . Variable ut i l izada por la mayoría de apl icaciones basadas en Java que cont iene la rut a a la carpet a en la que se inst aló el SDK. ♦ CLASSPATH . Se expl icara con det al le más adelant e en est e mismo manual. Es una var iable similar al PATH que sirve para indicar rut as a las carpet as en las que se almacenarán apl icaciones Java. Dicho de una manera más t écnica: cont iene las rutas de t odos los filesystems de Java. La forma de conf igurar est as var iables en Windows (si al menos t enemos versión de Windows superior o igual al 2000): (1) Señalar al icono Mi PC (o Equipo en Windows Vist a, Windows 2008 o Windows 7) y elegir Propiedades. Después elegir Propiedades Avanzadas y f inalment e pulsar en el bot ón Variables de entorno . http://java.sun.com/javase/downloads� fundamentos de programación (unidad 3) programación básica en Java (20) Ilustración 3-3, El cuadro de las variables del Sistema en Windows Server 2008 (2) Dent ro de est e cuadro, ya est ará la variable PATH. Habrá que elegirla y pulsar en modif icar. Sin borrar nada de lo que cont iene , debemos añadir al f inal del t ext o el símbolo ; y después la rut a al direct orio bin dent ro de la carpet a del SDK (por ej emplo C:\"Program Files" \Java \ jdk1.6. 14\bin ). (3) Tras acept ar el cuadro ant er ior, podremos pulsar en Nueva para añadir la var iable JAVA_HOME indicando como valor la rut a al SDK. Ilustración 3-4, Ejemplo de configuración de la variable JAVA_HOME en Wi ndows (4) Hacer el mismo proceso para la var iable CLASSPATH Para comprobar la versión de Java bast a con ir al símbolo del sist ema Windows y escribir java –version 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (21) en Linux Ilustración 3-5, El gestor de paquetes Synapt ic en el sistema Linux Ubuntu, mostrando información sobre los paquetes Java Casi t odas las versiones act uales de Linux incluyen el ent orno de ej ecución (JRE) de Java y la mayoría el ent orno de desarrol lo (SDK). Est o signif ica que segurament e no haya que inst alar nada. Para conocer la versión inst alada habría que ej ecut ar el comando java –version . Si deseamos inst alar Java o act ual izarlo, hay que inst alar el úl t imo paquet e, una opción es ut i l izar el gest or Synaptic para descargar la úl t ima versión del paquet e de desarrol lo en Java (ver Ilust ración 3-5). También podemos inst alar desde la l ínea de comandos, sería algo como sudo apt-get install sun-java6-jdk Finalment e siempre podemos acudir a la página de descargas de Sun, ht t p: / / j ava.sun.com/ j avase/ downloads y descargar la versión deseada. El archivo hay que descomprimirlo (si es un paquet e rpm ) o ej ecut arlo (si es simplement e un archivo bin ). Se obt endrá un direct orio con t odo el SDK de Java. Ahora bast ará con colocarlo en el direct orio adecuado. En t odo caso, sea cual sea la forma de inst alar el SDK, habrá que modif icar t res var iables de ent orno. Para lo cual lo normal es modif icar el f ichero / etc/ bash.bashrc y al f inal añadir las siguient es ent radas: ♦ export JAVA_HOME="ruta en la que está el SDK de Java" La rut a podría ser algo como / usr/ lib/ j vm/ java6sun http://java.sun.com/javase/downloads� fundamentos de programación (unidad 3) programación básica en Java (22) ♦ export PATH="$PATH:$JAVA_HOME/ bin " ♦ export CLASSPATH="rutas a los directorios en los qu e se almacenarán programas en Java" En el caso de la variable CLASSPATH, es muy conveniente que su ruta incluya el directorio actual (el símbolo . )~. Un ej emplo de uso de CLASSPATH en el archivo bashrc sería: export CLASSPATH="/ usr/ lib/ jvm/ java-6-sun:." Gracias a el lo podremos colocar programas Java y ej ecut arlos sin problemas en la carpet a raíz del SDK y en la carpet a act ual en la que nos encont remos. instalación del código fuente de las bibliotecas Como otros lenguajes, Java se compone de una serie de bibliotecas. En el caso de Java estas bibliotecas son inmensas y están comprimidas en el archivo src. jar . Es muy habit ual en Java el uso de archivos JAR. En real idad son archivos que aglut inan código fuent e en j ava, comprimiéndoles en format o ZIP. Para poder acceder al código fuent e en sí debemos descomprimir dicho archivo. Lo cual se hace (en cualquier sist ema): (1) Yendo a la carpet a o direct orio en el que se encuent ra el SDK (es decir yendo a JAVA_HOME). (2) All í se encuent ra el archivo src. jar (3) Descomprimirle con la orden jar xvf src. jar Act ualment e el archivo se l lama src.zip , con lo que se puede descomprimir con cualquier programa capaz de manej ar archivos ZIP. documentación En http:/ / java.sun.com/ docs se encuent ra la document ación of icial de Java. La más int eresant e es la document ación del API de Java (clases est ándar de Java). Aunque inicialment e es convenient e pasar por Get Started . La única pega es que no hay document ación en cast el lano. Ot ra posibil idad (más recomendable incluso), es descargarse la document a- ción en un archivo zip . De est a forma no dependeremos de la conexión a Int ernet para consul t ar la document ación of icial . Est o se puede real izar de la página de descarga ht t p: / / j ava.sun.com/ j avase/ downloads/ index. j sp (3.3.4) entornos de trabajo El código en Java se puede escribi r en cualquier edit or de t ext o. Y para compilar el código en byt ecodes, sólo hace fal t a descargar la versión del JDK deseada. Sin embargo, la escrit ura y compilación de programas hecha de est a forma es un poco incomoda. Por el lo numerosas empresas fabrican sus propios http://java.sun.com/javase/downloads/index.jsp� 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (23) ent ornos de edición, algunos incluyen el compilador y ot ras ut i l izan el propio JDK de Sun. Algunas vent aj as que of recen son: ♦ Facil idades para escribi r código: coloreado de las palabras clave, aut ocorrección al escribir , abreviat uras,… ♦ Facil idades de depuración, para probar el programa ♦ Facil idad de conf iguración del sist ema. Elección concret a del direct orio del SDK, manipulación de la variable CLASSPATH, et c. ♦ Facil idades para organizar los archivos de código. ♦ Facil idad para export ar e import ar proyect os Los IDE más ut il izados en la act ual idad son: ♦ Eclipse . Es un ent orno complet o de código abiert o que posee numerosas ext ensiones (incluido un módulo para JEE y ot ro para programar en C++) y posibil idades. Hoy en día es el más ut i l izado y recomendable. Posee una comunidad muy dinámica y desde luego es uno de los más pot ent es. Disponible en www.ecl ipse.org. ♦ NetBean s. Ent orno grat uit o de código abiert o para la generación de código en diversos lenguaj es (especialment e pensado para Java). Cont iene práct icament e t odo lo que se suele pedir a un IDE, edit or avanzado de código, depurador, diversos lenguaj es, ext ensiones de t odo t ipo (CORBA, Servlet s, . . . ). Incluye además un servidor de apl icaciones Tomcat para probar apl icaciones de servidor. Se descarga en www.net beans.org. ♦ JBuilder . Ent orno complet o creado por la empresa Borland (famosa por su lenguaj e Delphi ) para la creación de t odo t ipo de apl icaciones Java, incluidas apl icaciones para móviles. Es un ent orno muy pot ent e. ♦ JDeveloper . De Oracle. Ent orno complet o para la const rucción de apl icaciones Java y XML. Uno de los más pot ent es y complet os (ideal para programadores de Oracle). ♦ IntelliJ Idea. Ent orno comercial de programación bast ant e fácil de ut i l izar pero a la vez con caract eríst icas similares al rest o. Es menos pesado que los ant eriores y muy bueno con el código. ♦ Microsoft Visual J++ y Visual J#. Ofrece un compilador recomendable para los conocedores de los ent ornos de desarrol lo de Microsoft (como Visual Basic por ej emplo), de hecho son lenguaj es int egrados en el Visual Studio y Visual Studio.Net respect ivament e. Pero el Java de Microsof t no es est ándar. El único uso que t iene es para aquel losprogramadores de Java que necesit an programar para la plat aforma .Net de Microsof t y que no desean aprender los lenguaj es propios de est a plat aforma como C# o Visual Basic por ej emplo. fundamentos de programación (unidad 3) programación básica en Java (24) En est e document o hay información sobre el manej o de Eclipse y de Netbeans para crear apl icaciones en Java (véanse los apéndices 1 y 2). (3.4) escritura de programas Java (3.4.1) codificación del texto Todos el código fuent e Java se escr iben en document os de t ext o con ext ensión . java . Por lo t ant o para escribirlo bast a cualquier edit or de t ext o como el bloc de notas de Windows o los edit ores vi o gedit de Linux. Al ser un lenguaj e mult iplat aforma y especialment e pensado para su int egración en redes, la codi f icación de t ext o ut i l iza el est ándar Unicode ; lo que impl ica que los programadores y programadoras hispanohablant es podemos ut il izar sin problemas símbolos de nuest ra lengua como la eñe o las vocales con t i ldes o diéresis a la hora de poner nombre a nuest ras var iables. La codif icación Unicode4 (3.4.2) notas previas usa normalment e 16 bit s (2 byt es por caráct er) e incluye la mayoría de los códigos al fabét icos del mundo. Los archivos con código fuent e en Java deben guardarse con la ext ensión . j ava. Como se ha coment ado cualquier edit or de t ext o bast a para crearle. Algunos det al les import ant es son: ♦ En j ava (como en C) hay di ferencia ent re mayúsculas y minúsculas. ♦ Cada l ínea de código debe t erminar con ; ♦ Una inst rucción puede abarcar más de una l ínea. Además se pueden dej ar espacios y t abuladores a la izquierda e incluso en el int er ior de la inst rucción para separar element os de la misma. ♦ Los coment arios; si son de una l ínea debe comenzar con / / y si ocupan más de una l ínea deben comenzar con / * y t erminar con */ / * Co m en t a r io d e v a r ia s lín ea s */ / / Co m en t a r io d e un a lín ea También se pueden incluir coment arios javadoc (se expl ican en det al le más adelant e) 4 Para más información acudir a http:/ /www.unicode.org 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (25) ♦ A veces se marcan bloques de código, es decir código agrupado. Cada bloque comienza con { y t ermina con } { ...có d ig o d en t r o d el b loq ue } có d ig o fuer a d e l b loq ue (3.4.3) el primer programa en Java public class Prim e rProgram a { public s tatic vo id main(Strin g[ ] args) { Sys tem.out.println(“¡Mi primer programa!”); } } Est e código sirve para escribir ¡Mi primer programa! en la pant al la. Para empezar a ent ender el código: ♦ La primera l ínea (public class PrimerPrograma ) declara el nombre de la clase del código. Más adelant e se expl icará que signi f ica el concept o de clase; por ahora ent enderemos que el nombre de la clase es el nombre del programa. ♦ La l ínea public stat ic void main(St ring args[ ] ) , si rve para indicar el inicio del mét odo main . Est e mét odo cont iene las inst rucciones que se ej ecut arán cuando el programa arranque. Es decir lo que est á t ras las l laves del main , es el programa en sí. ♦ La inst rucción System.out .pr int ln si rve para escr ibir en pant al la. Como lo que escribimos es un t ext o, se encierra ent re comil las. Además, el archivo t iene que l lamarse obl igat oriament e PrimerPrograma. java ya que el nombre del programa (en real idad el nombre de la clase) y el del archivo deben coincidir. Por úl t imo, aunque no es obl igat or io, es más que aconsej able que el nombre del programa comience con una let ra mayúscula y le sigan let ras en minúsculas. Si const a de var ias palabras no pueden ut il izarse espacios en blanco, por lo que se suelen j unt ar las palabras poniendo cada inicial de la palabra en mayúsculas. Ést e t ipo de reglas no obl igat orias sino aconsej ables (como por ej emplo el hecho de que las inst rucciones int eriores a un bloque dej en espacio a su izquierda) producen un código más legible y sobre t odo hace que t odos los programadores del planet a adopt emos la misma forma de escribir , simpl if icando el ent endimient o del código. fundamentos de programación (unidad 3) programación básica en Java (26) (3.5) ejecución de programas Java (3.5.1) proceso de compilación desde la línea de comandos La compilación del código j ava se real iza mediant e el programa javac incluido en el sof t ware de desarrol lo de Java (el SDK). La forma de compilar es (desde la l ínea de comandos): javac archivo.java El resul t ado de est o es un archivo con el mismo nombre que el archivo j ava pero con la ext ensión class . Est o ya es el archivo con el código en forma de bytecode . Es decir con el código precompilado. Si el programa es ej ecut able (sólo lo son si cont ienen el mét odo main ), el código se puede int erpret ar usando el programa java del kit de desarrol lo (que se encuent ra en el mismo sit io que javac ). Sint axis: java archivoClass Est os comandos hay que escribi rlos desde la l ínea de comandos de en la carpet a en la que se encuent re el programa. Pero ant es hay que asegurarse de que los programas del kit de desarrol lo son accesibles desde cualquier carpet a del sist ema. Para el lo hay que haber conf igurado adecuadament e las var iables del sist ema (véase apart ado (3.3.3) inst alación del SDK). En el caso de Linux hay que ser especialment e cuidadoso con la var iable de sist ema CLASSPATH y asegurarnos de que cont iene en sus rut as raíces de Java el símbolo ". " (punt o) que represent a a la carpet a act ual . De ot ro modo la ej ecución del comando java podría fal lar. Ilustración 3-6, Ejemplo de compilación y ejecución en la línea de comandos 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (27) (3.6) javadoc Javadoc es una herramient a muy int eresant e del kit de desarrol lo de Java para generar aut omát icament e document ación Java. genera document ación para paquet es complet os o para archivos j ava. Su sint axis básica es: javado c archivo.java o paquete El funcionamient o es el siguient e. Los coment arios que comienzan con los códigos / ** se l laman coment arios de document o y serán ut i l izados por los programas de generación de document ación j avadoc. Los coment arios j avadoc comienzan con el símbolo / ** y t erminan con */ Cada l ínea j avadoc se suele iniciar con el símbolo de ast erisco para mej orar su legibil idad. Dent ro se puede incluir cualquier t ext o; incluso se pueden ut il izar códigos HTML para que al generar la document ación se t enga en cuent a el código HTML indicado. En el código j avadoc se pueden usar etiquetas especiales, las cuales comienzan con el símbolo @. Pueden ser: ♦ @author . Tras esa palabra se indica el aut or del document o. ♦ @version . Tras lo cual sigue el número de versión de la apl icación ♦ @see. Tras est a palabra se indica una referencia a ot ro código Java relacionado con ést e. ♦ @since . Indica desde cuándo est a disponible est e código ♦ @deprecated . Palabra a la que no sigue ningún ot ro t ext o en la l ínea y que indica que est a clase o mét odo est a obsolet a u obsolet o. ♦ @throws . Indica las excepciones que pueden lanzarse en ese código. ♦ @param . Palabra a la que le sigue t ext o qué describe a los parámet ros que requiere el código para su ut i l ización (el código en est e caso es un mét odo de clase). Cada parámet ro se coloca en una et iquet a @param dist int a, por lo que puede haber varios @param para el mismo mét odo.♦ @return . Tras est a palabra se descr ibe los valores que devuelve el código (el código en est e caso es un mét odo de clase) El código j avadoc hay que colocarle en t res sit ios dist int os dent ro del código j ava de la apl icación: ♦ Al principio del código de la clase (ant es de cualquier código Java). En est a zona se colocan coment arios generales sobre la clase o int erfaz que se crea mediant e el código Java. Dent ro de est os coment arios se pueden ut il izar las et iquet as: @author , @version , @see, @since y @deprecated fundamentos de programación (unidad 3) programación básica en Java (28) ♦ Delante de cada método . Los mét odos describen las cosas que puede real izar una clase. Delant e de cada mét odo los coment arios j avadoc se usan para describi r al mét odo en concret o. Además de los coment arios, en est a zona se pueden incluir las et iquet as: @see, @param , @exception , @return , @since y @deprecated ♦ Delante de cada atributo . Se describe para qué sirve cada at ribut o en cada clase. Puede poseer las et iquet as: @since y @deprecated Ej emplo: / ** Es t o es un co m ent a r io p a r a p r o b a r e l ja v a d o c * es t e t exto a p a r ecer á en el a r ch iv o H TM L g en er a d o . * <s t r o n g >Rea liza d o en a g o s t o 20 0 3< / s t r o n g > * * @a ut h or Jor g e Sá n ch ez * @v er s io n 1.0 */ public class prueba1 { / / Es t e co m en t a r io n o a p a recer á en e l ja v a d o c / ** Es t e m éto d o co n t ien e e l có d ig o e jecu t a b le d e la cla se * * @p a r a m a r g s Lis t a d e a r g um en to s d e la línea d e co m a n d o s * @r et u r n v o id */ public s tatic vo id main(Strin g args[ ] ) { System.out.println("¡Mi segundo programa! "); } } Tras ej ecut ar la apl icación javadoc , aparece como resul t ado la página web de la página siguient e. 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (29) Ilustración 3-7, Página de documentación de un pro grama Java (3.7) import En cualquier lenguaj e de programación exist en l ibrerías que cont ienen código ya escrit o que nos facil it a la creación de programas. En el caso de Java no se l laman l ibrerías, sino paquet es. Los paquet es son una especie de carpet as que cont ienen clases ya preparadas y más paquet es. Cuando se inst ala el kit de desarrol lo de Java, además de los programas necesarios para compilar y ej ecut ar código Java, se incluyen miles de clases dent ro de cient os de paquet es ya l ist os que facil it an la generación de programas. Algunos paquet es sirven para ut i l izar funciones mat emát icas, fundamentos de programación (unidad 3) programación básica en Java (30) funciones de lect ura y escrit ura, comunicación en red, programación de gráf icos, . . . Por ej emplo la clase System est á dent ro del paquet e j ava. lang (paquet e básico) y posee el mét odo out .print ln que necesit amos para escr ibi r fácilment e por pant al la. Si quisiéramos ut il izar la clase Date que sirve para manipular fechas, necesit aríamos incluir una inst rucción que permit a incorporar el código de Dat e cuando compilemos nuest ro t rabaj o. Para eso sirve la inst rucción import . La sint axis de est a inst rucción es: im po rt paquete.subpaquete.subsubapquete....clase Est a inst rucción se coloca arriba del t odo en el código. Para la clase Date sería: im po rt java.util.Date; Lo que signif ica, import ar en el código la clase Date que se encuent ra dent ro del paquet e util que, a su vez, est á dent ro del gran paquet e l lamado java . También se puede ut il izar el ast erisco en est a forma: im po rt java.util.* ; Est o signi f ica que se va a incluir en el código t odas las clases que est án dent ro del paquet e util de java . En real idad no es obl igat orio incluir la palabra import para ut i l izar una clase dent ro de un paquet e, pero sin el la deberemos escribi r el nombre complet o de la clase. Es decir no podríamos ut il izar el nombre Date , sino java.ut il.Date . (3.8) variables (3.8.1) introducción Las variables son cont enedores que sirven para almacenar los dat os que ut i l iza un programa. Dicho más sencil lament e, son nombres que asociamos a det erminados dat os. La real idad es que cada variable ocupa un espacio en la memoria RAM del ordenador para almacenar el dat o al que se ref iere. Es decir cuando ut il izamos el nombre de la variable realment e est amos haciendo referencia a un dat o que est á en memoria. Las variables t ienen un nombre (un ident ificador ) que sólo puede cont ener let ras, números (pero no puede empezar el nombre con un número) y el caráct er de subrayado. El nombre puede cont ener cualquier caráct er Unicode 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (31) que simbol ice let ras (valen símbolos como la ñ, á,… no permit idos en la mayoría de lenguaj es por no ser part e del ASCII est ándar) (3.8.2) declaración de variables Ant es de poder ut i l izar una var iable, ést a se debe declarar. Lo cual se debe hacer de est a forma: tipo nombrevariable; Donde t ipo es el t ipo de dat os que almacenará la var iable (t ext o, números ent eros, . . . ) y nombrevariable es el nombre con el que se conocerá la variable. Ej emplos: in t días; / / d ía s es un n úm er o en ter o , s in d ecim a les bo o lean decisión; / / d ecis ió n só lo p ued e ser v er d a d er a o fa lsa También se puede hacer que la variable t ome un valor inicial al declarar: in t días=365; Y se puede declarar más de una variable a la vez del mismo t ipo en la misma l ínea si las separamos con comas in t días=365, año=23, semanas; Al declarar una var iable se puede incluso ut i l izar una expresión: in t a=13, b=18; in t c=a+b; / / es v á lid o , c v a le 31 Java es un lenguaj e muy est rict o al ut i l izar t ipos de dat os. Variables de dat os dist int os son incompat ibles. Algunos aut ores hablan de lenguaje fuertemente t ipado o incluso lenguaje muy t ipif icado . Se debe a una t raducción muy direct a del inglés st rongly t yped referida a los lenguaj es que, como Java, son muy rígidos en el uso de t ipos. El caso cont rario sería el lenguaj e C en el que j amás se comprueban de manera est rict a los t ipos de dat os. Part e de le seguridad y robust ez de las que hace gala Java se deben a est a caract eríst ica. (3.8.3) asignación En Java para asignar valores a una var iable, bast a con ut i l izar el signo =. Ya se ha vist o en el apart ado ant erior que al declarar se puede asignar un valor: in t x=7; fundamentos de programación (unidad 3) programación básica en Java (32) Pero la asignación se puede ut il izar en cualquier moment o (t ras haber declarado la variable): in t x; x=7; x=x*2; Como se ve en la úl t ima l ínea ant erior, la expresión para dar el valor a la variable puede ser t an complej a como queramos. A diferencia de lenguaj es como C, en Java siempre se asigna una valor inicial a las variables en cuant o se declaran. En el caso de los números es el cero. in t x; / / x y a v a le cer o (3.9) tipos de datos primitivos Tipo de variable Bytes que ocupa Rango de valores boolean 2 true , false byte 1 -128 a 127 short 2 -32.768 a 32.767 int 4 -2.147.483.648 a 2.147.483.649 long 8 -9 · 1018 a 9 · 1018 double 8 -1,79 · 10308 a 1,79 · 10308 float 4 -3,4 · 1038 a 3,4 · 1038 char 2 Caract eres (en Unicode) (3.9.1) enteros Los t ipos byte , short , int y long sirven para almacenar dat os ent eros. Los ent eros son números sin decimales. Se pueden asignar ent eros normales o enteros oct ales y hexadecimales. Los oct ales se indican ant eponiendo un cero al número, los hexadecimales ant eponiendo 0x . in t numero=16; / / 16 d ecim a l numero=020; / / 20 o ct a l=16 d ecim a l numero=0x14; / / 10 hexa d ecim a l=16 d ecim a l Normalment e un número l it eral se ent iende que es de t ipo int salvo si al f inal se le coloca la let ra L; se ent enderá ent onces que es de t ipo long. No se acept a en general asignar var iables de dist int o t ipo. Sí se pueden asignar valores de variables ent eras a variables ent eras de un t ipo superior (por ej emplo asignar un valor int a una variable long ). Pero al revés no se puede: in t i=12; 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (33) byte b=i; / / e r r o r d e co m p ila ción, p o s ib le p ér d id a d e p r ecis ión La solución es hacer un cast . Est a operación permit e convert ir valores de un t ipo a ot ro. Se usa así: in t i=12; byte b=(byte) i; / / El (ca st ) ev it a el e r r o r Hay que t ener en cuent a en est os cast ings que si el valor asignado sobrepasa el rango del element o, el valor convert ido no t endrá ningún sent ido ya que no puede almacenar t odos los bit s necesarios para represent ar ese número: in t i=1200; byte b=(byte) i; / / El v a lo r d e b n o t ien e sen t id o (3.9.2) números en coma flotante Los decimales se almacenan en los t ipos float y double . Se les l lama de coma f lot ant e por como son almacenados por el ordenador. Los decimales no son almacenados de forma exact a por eso siempre hay un posible error. En los decimales de coma f lot ant e se habla, por t ant o de precisión. Es mucho más preciso el t ipo double que el t ipo float . Para asignar valores l it erales a una variable de coma f lot ant e, hay que t ener en cuent a que el separador decimal es el punt o y no la coma. Es decir para asignar el valor 2,75 a la variable x se haría: x=2.75; A un valor l it eral (como 1.5 por ej emplo), se le puede indicar con una f al f inal del número que es f loat (1.5f por ej emplo) o una d para indicar que es double . Si no se indica nada, un número l i t eral siempre se ent iende que es double, por lo que al usar t ipos f loat hay que convert i r los l it erales. Los valores decimales se pueden represent ar en not ación decimal : 1.345E+3 signif icaría 1,345·103 o lo que es lo mismo 1345. Lógicament e no podemos asignar valores decimales a t ipos de dat os ent eros: in t x=9.5; / / e r ro r Sí podremos mediant e un cast : in t x=(in t ) 9.5; pero perderemos los decimales (en el ej emplo, x vale 9). El caso cont rario sin embargo sí se puede hacer: in t x=9; do uble y=x; / / co r rect o fundamentos de programación (unidad 3) programación básica en Java (34) la razón es que los t ipos de coma f lot ant e son más grandes que los ent eros, por lo que no hay problema de pérdida de valores. Al declarar números del t ipo que sean, si no se indican valores iniciales, Java asigna el valor cero. (3.9.3) booleanos Los valores booleanos (o lógicos) sirven para indicar si algo es verdadero (t rue ) o falso (false ). bo o lean b=true ; Si al declarar un valor booleano no se le da un valor inicial , se t oma como valor inicial el valor false . Por ot ro lado, a diferencia del lenguaj e C, no se pueden en Java asignar números a una variable boole ana (en C, el valor false se asocia al número 0, y cualquier valor dist int o de cero se asocia a t rue ). Tampoco t iene sent ido int ent ar asignar valores de ot ros t ipos de dat os a variables booleanas mediant e cast ing: bo o lean b=(bo o lean) 9; / / n o t ien e sen t id o (3.9.4) caracteres Los valores de t ipo caráct er sirven para almacenar símbolos de escrit ura (en Java se puede almacenar cualquier código Unicode). Los valores Unicode son los que Java ut i l iza para los caract eres. Ej emplo: char letra; letra=’C’; / / Lo s ca r a ct er es v a n en t r e com illa s letra=67; / / El có d ig o Un ico d e d e la C es el 6 7. Es t a lín ea / / h a ce lo m ism o q ue la a n t er io r También hay una serie de caract eres especiales que van precedidos por el símbolo \ , son est os: carácter significado \b Ret roceso \ t Tabulador \n Nueva l ínea \ f Al iment ación de página \ r Ret orno de carro \ ” Dobles comil las \ ’ Comillas simples \ \ Barra incl inada (backslash ) \udddd Las cuat ro let ras d, son en real idad números en hexadecimal . Represent a el caráct er Unicode cuyo código es represent ado por las dddd 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (35) (3.9.5) conversión entre tipos (casting) Ya se ha coment ado ant eriorment e la necesidad de uso del operador de cast ing para poder real izar asignaciones ent re t ipos dist int os. Como resumen general del uso de cast ing véanse est os ej emplos: in t a;byte b=12; a=b; El código ant erior es correct o porque un dat o byte es más pequeño que uno int y Java le convert i rá de forma implícit a. Lo mismo pasa de int a double por ej emplo. Sin embargo en: in t a=1; byte b; b=a; El compilador devolverá error aunque el número 1 sea vál ido para un dat o byt e. Para el lo hay que hacer un cast ing . Eso signi f ica poner el t ipo deseado ent re parént esis delant e de la expresión. in t a=1; byte b; b= (byte) a; / / cor r ecto En el siguient e ej emplo: byte n1=100, n2=100, n3; n3= n1 * n2 /100; Aunque el resul t ado es 100, y ese resul t ado es vál ido para un t ipo byt e; lo que ocurrirá en real idad es un error. Eso es debido a que la mult ipl icación 100 * 100 da como resul t ado 10000, es decir un número de t ipo int . Aunque luego se divide ent re 100, no se vuelve a convert ir a byt e; ya que ante cualquier operación el t ipo resultante siempre se corresponde con el t ipo más grande que intervenga en la operación . Lo correct o sería: n3 = (byte) (n1 * n2 / 100); (3.9.6) ámbito de las variables Toda variable t iene un ámbito . Est o es la part e del código en la que una variable se puede ut il izar. De hecho las variables t ienen un ciclo de vida: (1) En la declaración se reserva el espacio necesario para que se puedan comenzar a ut i l izar (digamos que se avisa de su fut ura exist encia) (2) Se la asigna su primer valor (la variable nace ) (3) Se la ut i l iza en diversas sent encias fundamentos de programación (unidad 3) programación básica en Java (36) (4) Cuando f inal iza el bloque en el que fue declarada, la variable muere . Es decir, se l ibera el espacio que ocupa esa var iable en memoria. No se la podrá volver a ut i l izar. Una vez que la variable ha sido el iminada, no se puede ut il izar. Dicho de ot ro modo, no se puede ut il izar una variable más al lá del bloque en el que ha sido def inida. Ej emplo: { in t x=9; } in t y=x; / / er r o r , y a n o exis t e x (3.10) operadores (3.10.1) introducción Los dat os se manipulan muchas veces ut i l izando operaciones con el los. Los dat os se suman, se rest an, . . . y a veces se real izan operaciones más complej as. (3.10.2) operadores aritméticos Son: operador significado + Suma - Rest a * Product o / División % Módulo (rest o) Hay que t ener en cuent a que el resul t ado de est os operadores varía not ablement e si usamos ent eros o si usamos números de coma f lot ant e. Por ej emplo: do uble resultado1, d1=14, d2=5; in t resultado2, i1=14, i2=5; resultado1= d1 / d2; resultado2= i1 / i2; resultado1 valdrá 2.8 mient ras que resultado2 valdrá 2. 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (37)Es más incluso: do uble resultado; in t i1=7,i2=2; resultado=i1/ i2; / / Resu lt a d o v a ld r á 3 resultado=(do uble)i1/ i2; / / Resu lt a d o v a ld r á 3 .5 El operador del módulo (%) si rve para calcular el rest o de una división ent era. Ej emplo: in t resultado, i1=14, i2=5; resultado = i1 % i2; / / El r esu lt a d o ser á 4 El módulo sólo se puede ut il izar con t ipos ent eros (3.10.3) operadores condicionales Sirven para comparar valores. Siempre devuelven valores booleanos. Son: operador significado < Menor > Mayor >= Mayor o igual <= Menor o igual == Igual != Dist int o ! No lógico (NOT) && “ Y” lógico (AND) | | “ O” lógico (OR) Los operadores lógicos (AND, OR y NOT), sirven para evaluar condiciones complej as. NOT sirve para negar una condición. Ej emplo: bo o lean mayorDeEdad, menorDeEdad; in t edad = 21; mayorDeEdad = edad >= 18; / / m a y o r DeEd a d ser á t r ue menorDeEdad = !mayorDeEdad; / / m eno r DeEd a d ser á fa lse El operador && (AND) sirve para evaluar dos expresiones de modo que si ambas son ciert as, el resul t ado será t rue sino el resul t ado será false . Ej emplo: bo o lean carnetConducir=true; in t edad=20; bo o lean puedeConducir= (edad>=18) && carnetConducir; / / Si la ed a d es d e a l m en o s 18 a ño s y ca r n et Co n d ucir es / / t r ue , p ued eCon d ucir es t r ue fundamentos de programación (unidad 3) programación básica en Java (38) El operador | | (OR) sirve t ambién para evaluar dos expresiones. El resul t ado será t rue si al menos uno de las expresiones es t rue . Ej emplo: bo o lean n ieva =true , llueve=fa lse, graniza=fa lse; bo o lean malTiempo= nieva | | llueve | | graniza; (3.10.4) operadores de BIT Manipulan los bit s de los números. Son: operador significado & AND | OR ~ NOT ^ XOR >> Desplazamiento a la derecha << Desplazamiento a la izquierda >>> Desplazamiento derecha con relleno de ceros <<< Desplazamiento izquierda con rel leno de ceros (3.10.5) operadores de asignación Permit en asignar valores a una variable. El fundament al es “ =” . Pero sin embargo se pueden usar expresiones más complej as como: x += 3; En el ej emplo ant erior lo que se hace es sumar 3 a la x (es lo mismo x+=3 , que x=x+3 ). Eso se puede hacer t ambién con t odos est os operadores: += -= *= / = &= | = ^= %= >>= <<= También se pueden concat enar asignaciones (aunque no es muy recomenda- ble): x1 = x2 = x3 = 5; / / t o d a s v a len 5 Ot ros operadores de asignación son “ ++” (increment o) y “ --“ (decrement o). Ej emplo: x++ ; / / es t o es x=x+1; x--; / / es t o es x=x-1; Pero hay dos formas de ut i l izar el increment o y el decrement o. Se puede usar por ej emplo x++ o ++x La diferencia est riba en el modo en el que se comport a la asignación. 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (39) Ej emplo: in t x=5, y=5, z; z=x++ ; / / z v a le 5, x v a le 6 z=++y; / / z v a le 6 , y v a le 6 (3.10.6) operador ? Est e operador (conocido como if de una l ínea) permit e ej ecut ar una inst rucción u ot ra según el valor de la expresión. Sint axis: expresionlogica?valorSiVerdadero:valorSiFalso; Ej emplo: paga=(edad>18)?6000:3000; En est e caso si la var iable edad es mayor de 18, la paga será de 6000, sino será de 3000. Se evalúa una condición y según es ciert a o no se devuelve un valor u ot ro. Nót ese que est a función ha de devolver un valor y no una expresión correct a. Es decir, no funcionaría: (edad>18)? paga=6000: paga=3000; / / ERROR!!!! (3.10.7) precedencia A veces hay expresiones con operadores que resul t an confusas. Por ej emplo en: resultado = 8 + 4 / 2; Es dif ícil saber el resul t ado. ¿Cuál es? ¿seis o diez? La respuest a es 10 y la razón es que el operador de división siempre precede en el orden de ej ecución al de la suma. Es decir, siempre se ej ecut a ant es la división que la suma. Siempre se pueden usar parént esis para forzar el orden deseado: resultado = (8 + 4) / 2; Ahora no hay duda, el resul t ado es seis. No obst ant e el orden de precedencia de los operadores Java es: nivel operador 1 () [] . 2 ++ -- ~ ! 3 * / % 4 + - 5 >> >>> << <<< 6 > >= < <= fundamentos de programación (unidad 3) programación básica en Java (40) nivel operador 7 == != 8 & 9 ^ 10 | 11 && 12 | | 13 ?: 14 = +=, -=, *=, . . . En la t abla ant erior los operadores con mayor precedencia est á en la part e superior, los de menor precedencia en la part e inferior. De izquierda a derecha la precedencia es la misma. Es decir, t iene la misma precedencia el operador de suma que el de rest a. Est o úl t imo provoca conf l ict os, por ej emplo en: resultado = 9 / 3 * 3; El resul t ado podría ser uno ó nueve. En est e caso el resul t ado es nueve, porque la división y el product o t ienen la misma precedencia; por el lo el compilador de Java real iza primero la operación que est e más a la izquierda, que en est e caso es la división. Una vez más los parént esis podrían evit ar est os conf l ict os. (3.11) constantes Una const ant e es una variable de sólo lect ura. Dicho de ot ro modo más correct o, es un valor que no puede variar (por lo t ant o no es una variable ). La forma de declarar const ant es es la misma que la de crear variables, sólo que hay que ant eponer la palabra final que es la que indica que est amos declarando una const ant e y por t ant o no podremos variar su valor inicial : fin al do uble PI=3.141591; PI=4; / / Er r o r , n o p o d em o s ca m b ia r el v a lo r d e PI Como medida aconsej able (aunque no es obl igat oria, sí al t ament e recomen- dable), los nombres de las const ant es deberían ir en mayúsculas. 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (41) (3.12) lectura y escritura por teclado (3.12.1) escritura Ya hemos vist o que hay una función para escribir que es System.out .print ln . Dicha función puede recibir como parámet ro cualquier t ipo básico de dat os: es decir puede recibir un t ext o l it eral (siempre ent re comil las), pero t ambién puede escr ibir expresiones ent eras, booleanas, decimales y caract eres simples. Ej emplo: in t a=5, b=9; do uble c=5.5; Sys tem.out.println("Este es un texto literal"); Sys tem.out.println(a+b); / / Escr ib e 14 Sys tem.out.println(c*c); / / Escr ib e 30 .25 Sys tem.out.println(a<c);/ / Escr ib e t r ue Est a función t ras escr ibir añade un sal t o de l ínea, de modo que lo siguient e que se escriba saldrá en ot ra l ínea. Exist e una variant e de est a función que no insert a el sal t o de l ínea es System.out .prin t : Sys tem.out.print("todo en la "); Sys tem.out.print("misma línea "); Si deseamos que el mismo print ln o print escriba varios valores en la misma inst rucción, podemos usar el operador de encadenar t ext os, ej emplo: in t a=5, b=9; Sys tem.out.println("La suma es "+(a+b)); Es necesario usar parént esis ya que se ut i l iza en la expresión el operador + con dos signif icados. Est e operador concat ena cuando al menos hay un t ext o a la izquierda o derecha del operador; y suma cuando t enemos dos números (del t ipo que sea). (3.12.2) lectura La lect ura en Java es mucho más compl icada. Leer de la consola de sal ida requiere manej ar muchos conocimient os que pert enecen a t emas más avanzados que el act ual . Una forma no t an compl icada (aunque desde luego no es t an sencil la como la escrit ura) es ut i l izar la clase JOptionPane . Dicha clase pert enece al paquet e javax.swing , por lo que para ut i l izarla sin t ener que escr ibir el nombrecomplet o conviene usar la inst rucción: im po rt javax.swing.JOptio n Pane; fundamentos de programación (unidad 3) programación básica en Java (42) Est a es una clase pensada para manej ar cuadros de diálogo de t ipo Swing (véase t ema ¡Error! No se encuentra el origen de la referencia. ¡Erro r! No se encuentra el origen de la referencia. ). Uno de est os cuadros permit e int roducir dat os y que una variable les almacene. El problema es que t odos los dat os les devuelve en forma de String ( t ext o), lo que impl ica almacenarles en una variable de ese t ipo y luego convert irlos al t ipo apropiado (int , double , char ,…). Ej emplo: Strin g texto=JOption Pan e.showInputDialog("Escriba un número entero"); in t n=In tege r.parseInt(texto); Evident ement e est e código no es fácil . Para expl icar vamos l ínea a l ínea: ♦ En la pr imera l ínea, la variable t exto almacena lo que el usuario escriba en el cuadro de mensaj e. JOpt ionPane.showInputDialog es la función que permit e sacar el cuadro de mensaj e. "Escriba un número entero" es el t ext o que present a el mensaj e. Es decir el resul t ado de est a inst rucción es: ♦ En cuant o el usuario o usuaria escr iba el número y lo acept en (bot ón Aceptar ), lo escrit o se almacena en la variable t exto ♦ En la segunda l ínea, la función Integer.parseInt sirve para convert ir el número escrit o a forma de ent ero int . Sin est a conversión no podemos manipular lo escrit o como número, ya que se considera un t ext o (un St ring). ♦ Si el usuario cancela el cuadro o bien no escribe un número ent ero, ocurre un error que provocará que el programa f inal ice la ej ecución. Arreglar est os errores será algo que veremos más adelant e Aunque el código es un t ant o crípt ico a est as al t uras, merece la pena aprenderle ya que permit e más posibil idades de hacer programas para pract icar. De ot ro modo no t endremos manera de leer dat os por t eclado y eso supone una t ara import ant e para nuest ros programas. Hay que señalar que hay más funciones de conversión, se pueden apreciar en est a t abla: Función Conviert e a Integer.parseInt int Short.parseShort short Byte.parseByte byte Long.parseLong long 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (43) Float.parseFloat float Double.parseDouble double Boolean.parseBoolean boolean Hay que t ener cuidado con las mayúsculas, son obl igat orias donde aparezcan. (3.13) la clase Math Se echan de menos operadores mat emát icos más pot ent es en Java. Por el lo se ha incluido una clase especial l lamada Math dent ro del paquet e java. lang . Para poder ut i l izar est a clase, se debe incluir est a inst rucción (aunque normalment e no es necesario porque t odo el paquet e j ava. lang ya est ará incluido en nuest ro código): im po rt java.lan g.Math ; Est a clase posee mét odos muy int eresant es para real izar cálculos mat emát icos complej os. Por ej emplo: do uble x= Math . pow(3,3); / / x es 33, es d ecir 27 Math posee dos const ant es, que son: constante significado double E El número e (2, 7182818245. . .) double PI El número ∏ (3,14159265. . .) Por ot ro lado posee numerosos mét odos que son: operador significado double ceil (double x) Redondea x al ent ero mayor siguient e: ♦ Mat h.ceil (2.8) vale 3 ♦ Mat h.ceil (2.4) vale 3 ♦ Mat h.ceil (-2.8) vale -2 double floor (double x) Redondea x al ent ero menor siguient e: ♦ Mat h. f loor(2.8) vale 2 ♦ Mat h. f loor (2.4) vale 2 ♦ Mat h. f loor (-2.8) vale -3 int round (double x) Redondea x de forma clásica: ♦ Mat h. round(2.8) vale 3 ♦ Mat h. round (2.4) vale 2 ♦ Mat h. round (-2.8) vale -3 fundamentos de programación (unidad 3) programación básica en Java (44) operador significado double rint( double x) Idént ico al ant erior, sólo que ést e mét odo da como resul t ado un número double mient ras que round da como resul t ado un ent ero t ipo int double random() Número aleat orio decimal sit uado ent re el 0 y el 1 t iponúmero abs( t iponúmero x) Devuelve el valor absolut o de x. t iponúmero min( t iponúmero x, t iponúmero y) Devuelve el menor valor de x o y t iponúmero max( t iponúmero x, t iponúmero y) Devuelve el mayor valor de x o y double sqrt( double x) Calcula la raíz cuadrada de x double pow( double x, double y) Calcula xy double exp( double x) Calcula ex double log( double x) Calcula el logarit mo neperiano de x double acos( double x) Calcula el arco coseno de x double asin( double x) Calcula el arco seno de x double atan( double x) Calcula el arco t angent e de x double sin( double x) Calcula el seno de x double cos( double x) Calcula el coseno de x double tan( double x) Calcula la t angent e de x double toDegrees( double anguloEnRadianes) Conviert e de radianes a grados double toRadians( double anguloEnGrados) Conviert e de grados a radianes double signum (double n) Devuelve el valor del signo del número n. Si n vale cero, la función devuelve cero; si es posit ivo devulve 1.0 y si es negat ivo -1.0 Est a función apareción en la versión 1.5 de Java. double hypot( double x, double y) Suponiendo que x e y son los dos cat et os de un t r iángulo rect ángulo, la función devuelve la hipot enusa correspondient e según el t eorema de Pit ágoras. Disponible desde la versión 1.5 double nextAfter ( double valor, double dir) Devuelve el siguient e número represent able desde el valor indicado hacia la dirección que indique el valor del parámet ro dir . Por ej emplo Math.nextAfter(34.7, 90) devolvería 34.7000000001 Función añadida en la versión Java 1.6 1er curso de administración de sistemas informáticos aut or: Jorge Sánchez – www. j orgesanchez.net (45) (3.13.2) números aleatorios Una de las apl icaciones más int eresant es de Math es la posibil idad de crear números aleat orios. Para el lo se ut i l iza el mét odo random que devuelve un número double ent re cero y uno. Para conseguir un número decimal por ej emplo ent re cero y diez bast aría ut i l izar la expresión: Math .random()*10 Si el número queremos que se encuent re ent re uno y diez, sería: Math .random()*9+1 Y si queremos que sea un número ent ero ent re 1 y 10, la expresión correct a es: (in t ) Math .floor(Math .random()*10+1) Ent re 10 y 30 sería: (in t ) Math .floor(Math .random()*21+10) fundamentos de programación (unidad 3) programación básica en Java (46) Apéndice (I) Eclipse (I.i) entornos de desarrollo integrado (IDE) Los IDE son sof t ware que permit en a los programadores crear apl icaciones de forma cómoda. En est e anexo se expl ica brevement e como empezar a t rabaj ar con Ecl ipse. Est e capít ulo no pret ende ser una guía complet a de Ecl ipse sino expl icar lo mínimo para ut i l izar cómodament e Ecl ipse a f in de ut i l izarle como sof t ware básico de creación de apl icaciones en Java. Ecl ipse int egra edit ores para escribir código, compilación y ej ecución desde el propio ent orno, depuración, diseño asist ido para crear el int erfaz de la apl icación y casi cualquier herramient a int eresant e para programar en Java (o en ot ros lenguaj es, aunque desde luego el núcleo de desarrol lo de Ecl ipse es Java). Ecl ipse es el nombre del ent orno de desarrol lo int egrado más popular de la act ual idad para programar en Java. Ecl ipse se def ine a sí misma en la página of icial www.ecl ipse.org como una comunidad basada en los modelos de código abierto , que desarrolla proyecto, plataformas y herramientas para crear, di señar y administ rar sof tware cubriendo todo el ciclo de vida de la apli cación . Eclipse es una
Compartir