java basic

275
 MÓDULO 1 EXPLICANDO LA TECNOLOGIA JAVA™ Los objetivos: En la realización de este módulo, usted debe ser capaz a: . Describir conceptos importantes del Lenguaje de programación Java. . Listar los tres grupos del producto de la Tecnología Java. . Resumir cada una de las siete fases del ciclo de vida del producto. Este módulo proporciona una apreciación global de la tecnología de Java, Programando con la Tecnología Java y la aplicación del desarrollo del ciclo de Vida. PROGRESO Entre en un número (de 1 a 5) en la columna “Empiezó de Módulo” alinee su habilidad de realizar cada uno de los objetivos de este módulo. En la realización de este módulo, usted reimpondrá sus habilidades y determinará su ganancia de aprendizaje para cada objetivo. OBJETIVOS DEL MÓDULO VALORACIÓN (1 = No puedo completar este objetivo) (5 = Si puedo completar este objetivo ) Empiezó Fin del Módulo del Módulo  APRENDIENDO CON LOS AVA NCES ( FIN- EMPIEZO) Describir los conceptos importantes del Lenguaje de Programación Java. Listar los tres grupos del Producto de la Tecnología Java. Resumir cada una de las siete fases del ciclo de vida del producto. Los resultados de esta valoración ayudarán a Sun Education Services (SES) con la efectividad de su entrenamiento. Por favor mencione las ganancias de bajo aprendizaje (un 0 o 1 en la columna correcta) a su instructor para determinar si el material adicional necesita ser presentado durante su clase. Adicionalmente, esta información se remitirá a SES curso desarrollo para las revisiones extensas de este curso. 1

description

fundamentos de java

Transcript of java basic

  • MDULO 1

    EXPLICANDO LA TECNOLOGIA JAVA Los objetivos: En la realizacin de este mdulo, usted debe ser capaz a: . Describir conceptos importantes del Lenguaje de programacin Java. . Listar los tres grupos del producto de la Tecnologa Java. . Resumir cada una de las siete fases del ciclo de vida del producto. Este mdulo proporciona una apreciacin global de la tecnologa de Java, Programando con la Tecnologa Java y la aplicacin del desarrollo del ciclo de Vida. PROGRESO Entre en un nmero (de 1 a 5) en la columna Empiez de Mdulo alinee su habilidad de realizar cada uno de los objetivos de este mdulo. En la realizacin de este mdulo, usted reimpondr sus habilidades y determinar su ganancia de aprendizaje para cada objetivo.

    OBJETIVOS

    DEL MDULO

    VALORACIN (1 = No puedo completar este objetivo) (5 = Si puedo completar este objetivo ) Empiez Fin del Mdulo del Mdulo

    APRENDIENDO CON LOS AVANCES ( FIN- EMPIEZO)

    Describir los conceptos importantes del Lenguaje de Programacin Java.

    Listar los tres grupos del Producto de la Tecnologa Java.

    Resumir cada una de las siete fases del ciclo de vida del producto.

    Los resultados de esta valoracin ayudarn a Sun Education Services (SES) con la efectividad de su entrenamiento. Por favor mencione las ganancias de bajo aprendizaje (un 0 o 1 en la columna correcta) a su instructor para determinar si el material adicional necesita ser presentado durante su clase. Adicionalmente, esta informacin se remitir a SES curso desarrollo para las revisiones extensas de este curso.

    1

  • RELEVANCIA Discusin.- Las preguntas siguientes son pertinentes a entender por todas partes que es eso de la Tecnologa de java. Lo que es su definicin para las palabras siguientes: . Seguro . Orientado a Objetos . Independiente . Dependiente . Distribuido . En qu fases son involucradas construyendo algo, como una casa un pedazo de mobiliario? LOS RECURSOS ADICIONALES Los recursos adicionales.- Las referencias siguientes proporcionan la informacin adicional sobre los temas descritos en este mdulo: . La Tecnologa de Java: Una Historia Temprana. [En lnea]. Disponible a: http://java.sun.com/features/1999/05/birthday.html Una historia del quinto-anual sobre las personas detrs del desarrollo de tecnologa de Java. . La Gua didctica de Java. [En lnea]. Disponible a: http://java.sun.com/docs/books/tutorial / Una gua prctica para programadores con los centenares de ejemplos activos completos.

    2

  • LOS CONCEPTOS IMPORTANTES DEL IDIOMA DE PROGRAMACIN JAVA. El Idioma de Programacin de Java se origin en 1991 como parte de un proyecto de investigacin para desarrollar un idioma de la programacin, llamado el Roble, eso habra poner el hueco de comunicacin entre muchos dispositivos del consumidor, como los magnetofones videos (VCRs) y televisiones. Especficamente, un equipo de diseadores del software muy experimentados (llamados Equipo Verde) quiso crear un idioma de programacin que habilitara los dispositivos del consumidor con diferentes unidades del proceso centrales (CPUs) para compartir las mismas mejoras del software. El miembro del Equipo, James Gosling llam al nuevo idioma El roble porque haba un rbol de roble fuera de su ventana. Este concepto de la inicial fall despus de varios tratos con el dispositivo del consumidor por que las compaas eran infructuosas. El Equipo Verde fue obligado a encontrar otra comercializacin para su nuevo idioma de la programacin. Afortunadamente, el Web estaba ponindose popular y el equipo Verde reconoci que el idioma del Roble era perfecto para los componentes de multimedia en vas de desarrollo para reforzar las pginas Web. Estas pequeas aplicaciones, se llamaron applets, se volvi al uso inicial del idioma del Roble y los programadores que usan Internet adoptaron lo que se volvi El Idioma de Programacin Java. Nota.- Para la historia adicional en el Idioma de Programacin java, visita http://www.java.sun.com y busca la palabra el Oak. El Idioma de Programacin Java, fue diseada para ser: . Orientado a objetos. . Distribuido . Simple . Multithreaded . Seguro . Plataforma-independiente - ORIENTADO A OBJETOS. Es un programa orientado a objetos (OOP) porque una de las metas principales del programador de la tecnologa de java es crear los objetos, los pedazos de cdigo autnomo que pueden actuar recprocamente con otros objetos para resolver un problema. OOP empez con el programa SIMULA-67 en 1967 y ha llevado a los idiomas de la programacin populares, como C++ en el que el programa de Java es flojamente basado. OOP difiere la programacin procesal porque la sucesin de codificar los pasos exigi resolver un problema, mientras OOP enfatiza la creacin e interaccin de objetos.

    3

  • La siguiente figura demuestra el enfoque de un programa procesal en la sucesin. Figura 1.1.- enfoque de un programa procesal en la sucecin. La siguiente figura ilustra el enfoque de un programa orientado a objetos en los objetos y las interacciones de los objetos. Figura 1.2.- enfoque de un programa orientado a objetos en los objetos y las interacciones de los objetos. - DISTRIBUIDO. Es Distribuido porque el idioma proporciona el apoyo para distribuir las tecnologas de la red, como la Invocacin del Mtodo Remoto (RMI), la Demanda del Objeto Comn Corredor Arquitectura (CORBA), y el Recurso Universal Locacin (URL). Adicionalmente, la clase dinmica de las capacidades cargantes de tecnologa de java permiten transmitir los pedazos de cdigo encima de Internet y ejecutarlo en una computadora personal. Nota.- Las condiciones de La tecnologa de java y el Idioma de Programacin Java no se refieren a la misma cosa. La tecnologa de java se refiere a una familia de productos de tecnologa java en donde el Idioma de Programacin es slo una parte.

    4

  • La figura siguiente ilustra las propiedades distribuidas de tecnologa de java. Figura 1.3.- propiedades distribuidas de Tecnologa Java. - SIMPLE. Es simple porque los diseadores quitaron algunas de las estructuras de la programacin compleja y oscura encontradas en otros idiomas de la programacin popular. Como un ejemplo, el Idioma de Programacin java no permite a los programadores manipular los indicadores directamente a las situaciones de memoria, un complejo minusioso emple mal rasgo del C y C++ que programan los idiomas. En cambio, el Idioma de Programacin java que slo les permite a programadores manipular objetos que usan las referencias del objeto. El idioma de la programacin tambin usa un rasgo que llam a un basurero para supervisar y quitar objetos que ya no se envan. Otro rasgo que hace el Idioma de Programacin java simple es que un tipo de datos boolean puede tener un valor de verdaderos o falsos, diferente a otros idiomas dnde el valor tambin puede ser 1 y 0. - MULTITHREADED Multithreading permite un programa de tecnologa de java para ser muy eficaz en su uso de recursos del sistema. La figura siguiente ilustra cmo el Idioma de Programacin de Java es el multithreaded.

    5

  • - SEGURO Con la Tecnologa de Java los programas estn seguros porque el Idioma de Programacin Java, junto con el ambiente en que la tecnologa de java programa, mide la seguridad para proteger los programas de los ataques. Estas medidas incluyen: - prohibir la manipulacin de memoria que usa los indicadores. - prohibir los programas distribudos, como el applets, de leer y escribir a un disco duro de una computadora. - verificar que todos los programas de tecnologa de java contienen el cdigo vlido. - apoya las firmas digitales. El Codigo de la Tecnologa de Java puede firmarse en cierto modo por una compaa o persona que otra persona que recibe el cdigo puede verificar la legitimidad del cdigo. La figura siguiente ilustra cmo los programas de tecnologa de java estn seguros no permitiendo el cdigo no vlido para ejecutar en una computadora. Figura 1.5.- Cdigo no valido para ejecutar en una computadora. - PLATAFORMA INDEPENDIENTE Programas normalmente escritos en la mayora de los idiomas que requieren a las numerosas modificaciones de un tipo de la plataforma, una combinacin de un CPU y sistema operativo. Esta dependencia de la plataforma es porque la mayora de los idiomas le exige que escriba el cdigo especfico a la plataforma subyacente. Los idiomas de la programacin popular como el C y C++ les exigen a programadores compilar y unir sus programas, mientras produciendo un programa ejecutable nico a una plataforma. - los programas de plataforma-dependientes. - un recopilador es una aplicacin que convierte un programa que usted escriba en un cdigo CPU-especfico llamado el cdigo de la mquina. Estos archivos plataforma-especficos (los archivos binarios) se combina a menudo con otros archivos, como las bibliotecas de cdigo pre-escrito, mientras se usa a un montador para crear un programa plataforma-dependiente, llamado un ejecutable, eso puede ejecutarse por un usuario final.

    6

  • La figura siguiente ilustra cmo un recopilador crea un archivo binario. Figura 1.6.- creando un archivo binario. La figura siguiente ilustra cmo un archivo binario se une con las bibliotecas para crear una plataforma-dependiente ejecutable. Figura 1.7.- plataforma dependiente ejecutable.

    7

  • La figura siguiente ilustra cmo las plataformas-dependientes ejecutables slo pueden ejecutar en una plataforma. - los programas de plataforma-independientes. La Tecnologa de Java programa en varios CPUs diferentes y combinaciones del sistema operativo, como el Solaris OS en una rama de SPARC, MacOS en una rama de Motorola, y Microsoft Windows en una rama de Intel, normalmente con alguno o ninguna modificacin. Nota.- Algunas modificaciones podran exigir hacer de la tecnologa de Java una Programacin en la plataforma independiente. Por ejemplo, podran necesitar los nombres del directorio para ser alterado para que ellos usen delimitaciones apropiadas (delantero y las cuchilladas dirigidas hacia atrs) para el sistema operativo subyacente. El programa C y C++ , tambin se compilan los programas de la Tecnologa Java usando a un Recopilador en la Tecnologa Java. Sin embargo, el formato resultante de un programa compilado en la Tecnologa de Java es el bytecode de tecnologa Java plataforma-independiente en lugar del cdigo de la mquina CPU-especfico. Despus de que el bytecode se crea, se interpreta (ejecuta) por un intrprete del bytecode llamado la mquina virtual o VM. Una mquina virtual es un programa de plataforma-especfica que entiende bytecode plataforma-independiente y lo ejecta en una plataforma particular. Por esta razn, la programacin del Idioma de Java est a menudo llamado un idioma interpretado, y los programas de la tecnologa java sirven para ser porttiles o ejecutables en cualquier plataforma. Otros idiomas interpretados incluyen Perl. Una mquina virtual consigue su nombre porque es un pedazo de software que ejecuta el cdigo, una tarea normalmente lograda por el CPU o la mquina del hardware.

    8

  • Para que la tecnologa de Java pueda ser plataforma-independiente, llamaron La Mquina Virtual de Java(JVM) donde se requiere que cada plataforma ejecute su programacin. La Mquina Virtual de Java es responsable por interpretar el Cdigo de la Tecnologa de Java, Java clasifica y ejecuta los programas de la Tecnologa Java. Sin embargo, la tecnologa Java necesita ms de una sola Mquina Virtual de Java para ejecutar un programa. Un programa en la Tecnologa de Java tambin necesita un juego de clases-bibliotecas normales para la plataforma. Las clases- bibliotecas son las bibliotecas de cdigo pre-escrito que puede combinarse con el cdigo que usted escribe para crear las aplicaciones robustas. Combinado, el software de JVM y las bibliotecas clasificadas de Java es llamado El ambiente runtime de Java (Java REF). los ambientes runtime de Java son disponible de Sun Microsystems para muchas plataformas comunes. La Tecnologa de Java est llamando a menudo una plataforma porque puede realizar todas las tareas de un sistema operativo subyacente y un CPU. Un prototipo de una computadora con un CPU que slo entiende el bytecode de la Tecnologa Java se desarroll por Sun Microsystems y llamaron el Puesto de trabajo de JavaStation. La figura siguiente ilustra el recopilador de tecnologa de java (el recopilador de Java) creando el bytecode de java. Figura 1.9.- creando el bytecode de Java La figura siguiente ilustra un bytecode de tecnologa de java (el bytecode de java) archivo que ejecuta en varias plataformas dnde un ambiente de runtime de java existe.

    9

  • La habilidad de correr un programa de tecnologa de java en todas las plataformas Centrales es poner al Sun Microsystem "Escriba Una vez, Ejecute el eslogan En cualquier parte." Nota.- La aplicacin de las condiciones que programa la interfaz (el API) y la biblioteca de la clase puede usarse intercambiablemente. Ms all, el API puede referirse a una sola rutina dentro de una biblioteca de cdigo. Ejercicio.- relacione las condiciones con sus definiciones. Definicin Termin Compuesto de la Mquina Virtual de Java La mquina Virtual de Java Y clasificacin de las bibliotecas de Java. Manipula los objetos en lugar de un indicador Applet Ejecuta al bytecode de la plataforma-independiente Compilador Quita los objetos de la Referencia de memoria Referencia Ejecuta dentro de un navegador de tejido Bytecode Crea el bytecode de Java Java Runtime Enviroment Ejecutado por la Maquina Virtual de Java Garbage Collector

    10

  • LOS GRUPOS DEL PRODUCTO DE LA TECNOLOGA DE JAVA. Sun Microsystems proporciona una lnea completa de productos de la Tecnologa Java yendo de equipos que crean programacin de la tecnologa de Java a la emulacin (prueba) los ambientes para los dispositivos del consumidor, como los telfonos celulares. identificando los grupos del producto de la tecnologa de java. La tecnologa de Java, como la Maquina Virtual de Java, es incluida (en los diferentes formularios) en tres grupos diferentes de productos, cada uno diseado a que cumpla las necesidades de un mercado designado en particular:

    Java 2 Plataforma, la Edicin Normal (J2SE).- Desarrolla el applets y aplicaciones que corren dentro de los navegadores Web y en el escritorio de las computadoras, respectivamente. Por ejemplo, usted puede usar el Software de J2SE El Equipo de diseador (SDK) para crear un proceso de palabras para un programa en la computadora personal. Nota.- Applets y aplicaciones difieren de varias maneras. Principalmente, applets se lanza dentro de un navegador de tejido mientras las aplicaciones se lanzan dentro de un sistema operativo. Mientras este curso enfoca principalmente en la aplicacin del desarrollo, la mayora de la informacin en este curso puede aplicarse a el desarrollo del applet.

    Java 2 Plataforma, Edicin de la Empresa (J2EE).- Crea grandes empresas, servidor-lado y cliente-lado distribuyendo las aplicaciones. Para el ejemplo, usted puede usar el J2EE SDK para crear un tejido yendo de compras (el eCommerce) la aplicacin para el sitio web de una compaa del menudeo.

    Java 2 Plataforma, la Edicin Microscpica (J2ME).- Crea las aplicaciones para los dispositivos del consumidor recurso-encogidos. Por ejemplo, usted puede usar el J2ME SDK para crear un juego que corre en un telfono celular.

    11

  • La figura siguiente ilustra el tres grupos de producto de la tecnologa de java y sus tipos del dispositivo designado. Figura 1.11.- Grupos de productos de la Tecnologa Java Entre otras tecnologas de java, cada edicin incluye el equipo de un diseador del software (SDK) eso les permite a programadores crear, compilar, y ejecutar los programas de la tecnologa de Java en una plataforma particular. Escogiendo el Grupo de Producto correcto en la Tecnologa de Java. Mientras muchos programadores de tecnologa de java especializan en el futuro en el desarrollo de aplicaciones por un mercado designado particular, todos los programadores normalmente empiezan sus carreras que crean aplicaciones o applets para las computadoras del escritorio. Por consiguiente, el J2SE SDK es el grupo de producto que la mayora de los programadores usa mientras aprende el idioma de programacin Java.

    USANDO LOS COMPONENTES DE JAVA 2 PLATAFORMA, LA EDICIN NORMAL SDK.

    Sun Microsystems ha desarrollado una versin de Java 2 Plataforma, La Edicin normal SDK para Solaris OS en el SPARC (32 bits), Microsoft Windows en la rama de Intel (32-bits), Linux en el Intel, y los Solaris OS en el SPARC (el 64-bits). Java 2 Plataforma, La edicin Normal SDK incluye lo siguiente:

    Java runtime Environment: Una Mquina Virtual de Java para la plataforma que usted escoga Las clases bibliotecas para la plataforma usted escoge

    Un Compilador de Java La clase biblioteca (el API) la documentacin (como un separado transmita) Las utilidades adicionales, como las utilidades por crear los archivos, (Los

    archivos del file) y por poner a punto los programas de la Tecnologa de Java. Los ejemplos de Programas de la tecnologa de Java.

    12

  • asegurar la corrida de los programas en la tecnologa de Java en todas las computadoras dnde una Mquina Virtual de Java y Java clasifican que las bibliotecas estn presentes, el software de JVM y Java clasifican que las bibliotecas deben adherir a la La Mquina virtual de java y el Idioma Java caractersticas tcnicas. Estas caractersticas tcnicas son disponibles a compaas que autorizan la tecnologa de Java y quieren crear su propio software de JVM y recopiladores. De hecho, Sun Microsystems tena sus propias especificaciones para crear un Java runtime envonment para el Solaris OS en el SPARC cortan y para Microsoft Windows en el Intel. Demostracin.- Su instructor demostrar cuatro tipos de las aplicaciones de la tecnologa de Java. Estas aplicaciones son: . J2SE la aplicacin de SDK . J2SE el applet de SDK . J2EE la aplicacin de SDK . J2ME la aplicacin de SDK Al mirar la demostracin, usted debe prestar la atencin particular a: . Cmo el applet o la aplicacin se ejecuta (en rdenes entrados, los iconos apretaron, y as sucesivamente) . Donde el applet o la aplicacin se ejecuta (es dentro de un Web, un dispositivo del consumidor, y as sucesivamente)

    13

  • LAS FASES DE UN CICLO DE VIDA DE UN PRODUCTO (PLC) El ciclo de vida de un producto (PLC) representa un juego industrial-aceptado de fases que usted debe seguir al desarrollar cualquier nuevo producto. Hay siete fases en el PLC. Estas fases son: 1. el anlisis 2. el diseo 3. el desarrollo 4. pruebas 5. la implementacin 6. el mantenimiento 7. fin-de-vida (EOL) ** LA FASE DEL ANLISIS El anlisis es el proceso de investigar un problema que usted quiere resolver con su producto. Entre otras tareas, el anlisis consiste de: - definir el problema claramente que usted quiere resolver, el nicho del mercado que usted quiere llenar, o el sistema que usted quiere crear. El lmite de un problema tambin est conocido como el alcance del proyecto. - Identificar los subcomponentes importantes que componen su producto global. La figura siguiente ilustra la fase del anlisis.

    14

  • ** LA FASE DEL DISEO El diseo es el proceso de aplicar los resultados que usted ha hecho durante la fase del anlisis al plan real de su producto. La tarea primaria durante la fase del diseo es desarrollar blueprint o especificaciones para los productos o componentes en su sistema. La figura siguiente ilustra la fase del Diseo. ** LA FASE DE DESARROLLO El desarrollo consiste en usar los cianotipos creados durante la fase del plan para crear los componentes reales. La figura siguiente ilustra la fase de desarrollo.

    15

  • ** LA FASE DE PRUEBAS Esta fase consiste en asegurar que los componentes individuales, o el producto en conjunto, rena los requisitos de las especificaciones creados durante la fase del plan. Nota.- El anlisis bueno del problema lleva a un plan bueno de la solucin y al desarrollo disminuido y prueba de tiempo. La prueba normalmente se realiza por un equipo que consiste en las personas de otra manera que aqullos que realmente desarrollaron el producto. Un equipo asegura que el producto se prueba sin cualquier prejuicio en nombre del diseador. La figura siguiente ilustra la fase de la comprobacin. Nota.- Primero pueden aplicarse cuatro fases del PLC a cada uno de los ejercicios en este curso. Para asegurar el xito con los ejercicios, usted debe (1) analizar el problema, (2) desarrollar un contorno rpido o especificacin para la solucin que se programa, (3) desarrolle la solucin, y (4) prueba el programa. ** LA FASE DE IMPLEMENTACION La implementacin consiste en fabricar el producto disponible a clientes. La figura siguiente ilustra la fase de aplicacin. La fase de aplicacin est a menudo llamado la nave de cliente de firts o FCS en la industria de la computadora.

    16

  • ** LA FASE DE MANTENIMIENTO El mantenimiento consiste en arreglar los problemas con el producto y soltar el producto como una nueva versin o revisin. La figura siguiente ilustra la fase de mantenimiento. ** LA FASE FIN DE VIDA Mientras el PLC no tiene una fase separada para la salida de un concepto o proyecto, tiene una fase para el fin de un proyecto. EOL consiste en transportar fuera todas las tareas necesarias asegurando que los clientes y empleados son conscientes que un producto ya no est vendindose y est apoyndose y que un nuevo producto es disponible. La figura siguiente ilustra la fase de EOL.

    17

  • POR QU USTED DEBE SEGUIR EL PLC? El PLC es una parte importante de desarrollo del producto porque ayuda asegurar que se crean los productos y se entregan a tiempo para comercializar est reducido, la calidad de un producto es alta, y el retorno en la inversin se aumenta al mximo. Diseadores que no siguen a menudo el PLC encuentran los problemas con sus productos que son costosos al apuro y eso podra evitarse. Nota.- Este curso no presenta organizado el PLC en detalle. Sin embargo, todo lo que usted aprende en este curso se cae en una de las siete fases del PLC. Ejercicio.- relacione la tarea de PLC a su fase correspondiente. Tarea Fase Crea el Blueprint de un producto Comprobacin Determina el alcance del problema Fin de vida No se quiere hacer mejoras en el producto y Analisis Se libera la siguiente versin. Caracteristicas de funcionalidad con Implementacin producto Asegura que el producto trabaje segn lo Desarrollo Indicado en una especificacin Crea el producto Diseo Realiza el Mantenimiento del producto Mantenimiento

    18

  • MDULO 2 Los objetivos: En la realizacin de este mdulo, usted debe ser capaz a: . Describir los rasgos importantes de la tecnologa de Java . Escribir, compilar, y ejecutar una aplicacin simple de la tecnologa de Java . Describir la funcin de la Mquina Virtual de Java (JVM)1 . Definir el Garbage Collection . Listar las tres tareas realizadas por el cdigo de seguridad de la plataforma de Java. Este mdulo proporciona una apreciacin global general de tecnologa de Java, incluyendo la JVM, Garbage Collection, la seguridad que ofrece, y la herramienta de interfaz de la JVM. RELEVANCIA Discusin.- Las preguntas siguientes son pertinentes al material presentado en este mdulo: . Es Java un Idioma de programacin completo o es til slo por escribir los programas para el Web? _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ . Por qu usted necesita otro idioma de programacin? _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ . Cmo hace que la Plataforma de la Tecnologa Java mejore las plataformas en otro idioma ? _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ LOS RECURSOS ADICIONALES Los recursos adicionales.- Las referencias adicionales siguientes proporcionan los detalles en los temas discutidos en este mdulo: . El ansarino, Alegra, Bracha, y Steele. La Java Idioma Especificacin, Segunda Edicin. Addison-Wesley. 2000. [Tambin en lnea a: http://java.sun.com/docs/books/jls /]. . Lindholm y Yellin. La Especificacin de la Mquina Virtual de Java, Segundo, La edicin. Addison-Wesley. 1999. [Tambin en lnea a: http://java.sun.com/docs/books/vmspec /]. . Yellin, Frank. La Seguridad de bajo nivel en Java, el papel blanco. [En lnea]. Disponible: http://java.sun.com/sfaq/verifier.html.

    19

  • QUE ES LA TECNOLOGA DE JAVA? La tecnologa de Java es: . Un idioma de la programacin . Un ambiente de desarrollo . Un ambiente de la aplicacin . Un ambiente del despliegue La sintaxis del idioma de programacin de java es similar a la sintaxis de C++. Usted puede usar Java para crear todos los tipos de aplicaciones que usted podra crear usando cualquier idioma convencional programando. Como un ambiente de desarrollo, la tecnologa de Java lo proporciona con una coleccin grande de herramientas: un compilador, intrprete, un generador de la documentacin, una herramienta de clase empaquetada , y as sucesivamente. El idioma de Programacin Java normalmente se menciona en el contexto de el World Wide Web y navegadores que son capaz de funcionar los programas llamados applets. Applets son programas escritos en el idioma de programacin java que reside en los servidores del Web, se transmite por un navegador al sistema de un cliente, y se corre por ese navegador. Applets son normalmente pequeo en el tamao minimizado, transmiten tiempo y se invocan por El Idioma de Encarecimiento de hipertexto (HTML) la pgina web. Las aplicaciones de la Tecnologa Java son programas autnomos que no requieren un navegador de Web para ejecutar. Tpicamente, ellos son los programas de uso general en cualquier mquina dnde el Java Runtime Environment (JRE) es instalado. Hay dos ambientes de despliegue principales. Primero, el JRE proporcionado por el Equipo de Desarrollo de Software (Java 2 SDK) contiene el juego completo de archivos de la clase para toda la tecnologa de Java empaquetada que incluye el elemento esencial que clasifica el idioma, el componente de GUI clasifica, un API de las Colecciones avanzado, y as sucesivamente. El otro ambiente del despliegue principal est en el navegador.

    20

  • LAS METAS PRIMARIAS DE LA TECNOLOGA DE JAVA La tecnologa de Java proporciona a lo siguiente:

    Un idioma que es fcil programar porque : Elimina muchas trampas de otros idiomas, como el indicador,

    la aritmtica y direccin de memoria que afectan la robustez del cdigo

    El objeto orientado esta para ayudarle a visualizar el programa en la vida real.

    Le permite que haga aerodinmico el cdigo

    Un ambiente interpretado que produce los beneficios siguientes: La velocidad de desarrollo reduce el compilar-eslabn-carga-prueba

    ciclo Codificar la portabilidad le Permite que escriba cdigo en que puede correrse los sistemas operativos mltiples en cualquier JVM certificado

    Una manera para correr los programas ms de una actividad Medios para cambiar los programas dinmicamente durante su vida del runtime permitindoles que transmitieran los mdulos del cdigo Medios de asegurar la seguridad verificando los mdulos del cdigo cargados

    La arquitectura de la Tecnologa de Java usa los rasgos siguientes para cumplir las metas previamente listadas: . El JVM . El Garbage Collection . El JRE . JVM con herramienta de interfaz

    LA MQUINA VIRTUAL DE JAVA.

    La especificacin de la Mquina Virtual de java se define como: Una mquina imaginaria que se lleva a cabo emulndolo en el software de una mquina real. Elcdigo JVM se guarda en. los archivos de la clase cada uno de los cuales contiene el cdigo para una clase pblica. La especificacin de la Mquina Virtual de Java proporciona a la plataforma del hardware especificaciones que usted compila todo el cdigo en Java. Esta especificacin permite al software de Java ser plataforma-independiente porque la recopilacin se hace para una mquina genrica, conocido como el JVM. Usted puede emular esta mquina genrica en el software y ejecutar en varios sistemas de la computadora o lo lleva a cabo en el hardware.

    21

  • El compilador toma el cdigo fuente de la aplicacin de java y genera el bytecodes. Bytecodes son las instrucciones de cdigo de mquina para el JVM. Cada interprete de Java, sin tener en cuenta si es una herramienta de desarrollo o un navegador Web que pueden ejecutar los applets, tiene una aplicacin del JVM. La especificacin de JVM proporciona las definiciones concretas para la aplicacin de lo siguiente: un juego de instruccines (equivalente a la unidad del proceso central [CPU]), un juego de registros, el formato de archivo de clase, un runtime apilan, un Garbage Collection reunido, una rea de memoria, el mecanismo informando un error y precisin que cronometra el apoyo. El formato del cdigo de la mquina virtual de Java consiste en compactar el bytecodes. Los Programas representados por el bytecodes de JVM deben mantener un tipo apropiado de disciplina. La mayora de verificacin se hace a compilar cualquier interpretacin de java pudiendo ejecutar cualquier programa con archivos de la clase que conforman al formato de archivo de clase especificados en La Especificacin de la Mquina Virtual de Java. El plan de JVM habilita la creacin de aplicaciones para el mltiplo de los ambientes que operan. Por ejemplo, Sun Microsystems proporciona las aplicaciones del JVM para el Solaris OS y el Linux y Microsoft Windows los ambientes que opera.

    GARBAGE COLLECTION Muchos idiomas de la programacin permiten asignar la memoria dinmicamente al runtime. El proceso de asignar la memoria vara de acuerdo en la sintaxis del idioma, pero siempre involucra devolviendo un indicador a la direccin de arranque de un bloque de memoria. Despus de que la memoria asignada ya no se requiere (las referencias de la memoria indican que ha salido de magnitud), el programa o el runtime Environment se debe de asignar la memoria. En C, C++ y otros idiomas, usted es responsable de asignar la memoria. ste puede ser a veces un ejercicio difcil, porque usted no sabe de antemano cuando la memoria debe soltarse. Los programas que no se les asigna la memoria puede chocar en el futuro cuando no haya que asignara la memoria de el sistema . Se dice que estos programas tienen las goteras de memoria. El idioma de programacin Java quita de la responsabilidad de asignar a la memoria. Proporciona un sistema nivelado que rastrea cada asignacin de memoria. Durante los ciclos ociosos en la JVM, el Garbage collectio libera cualquier memoria que pueda liberarse.

    22

  • El Garbage Collection pasa automticamente a la vida de un programa de la Tecnologa de Java, eliminando la necesidad del desperdicio de memoria y evitando las goteras de memoria. Sin embargo, los esquemas de Garbage Collection pueden variar dramticamente por las aplicaciones de JVM.

    JAVA RUNTIME ENVIRONMENT

    La Figura 2.1 ilustra el JRE y cmo da fuerza a la seguridad del cdigo. Compile Runtime

    TestGreeting.java javac

    TestGreeting.class

    Class Loader

    Bytecode verifier

    Interpreter

    Runtime

    Hardware

    Carga del disco duro, red o fuente.

    java

    Figura 2.1 Funcionamiento del JRE El Software de java compila fuente archivos en el sentido que ellos se convierten en un juego de bytecodes del texto estructurado en que usted lo escribe. Los bytecodes se guardan en los archivos de la clase. En el runtime, los bytecodes que constituyen un programa en el software de java estn cargados, verificados, y ejecutados en un intrprete. En el caso de applets, usted puede transmitir el bytecodes, y entonces ellos se interpretan por el JVM constituidos en el navegador. El intrprete tiene dos funciones: ejecuta el bytecodes y hace las llamadas apropiadas al hardware subyacente. En algunas tecnologas del Runtime Enviroment, verificamos una porcin de los bytecode que se compilan al cdigo de la mquina nativa y se ejecuta directamente delante de la plataforma del hardware. Esto permite al Software de Java corre el cdigo a la velocidad de C o C++ con un retraso pequeo en momento de carga para permitir al cdigo ser compilado al cdigo de la mquina nativo (vea Figura 2.2).

    23

  • TestGreeting.java

    javac

    TestGreeting.class

    Carga del disco duro, red o fuente.

    Class Loader

    Bytecode verifier

    Interprete

    Runtime

    Hardware

    java

    JIT Code Generador

    Figura 2.2 Funcionamiento del JRE Con un solo compilador en el Runtime (JIT) Nota.- Sun Microsystems ha reforzado los JVM mecanizan agregando nuevas tecnologas habilitando su actuacin. Uno de estas tecnologas se llama la Mquina Virtual Java HotSpot y tiene el potencial para habilitar programando el idioma java para ejecutar tan rpido como el cdigo de C++ compilado.

    LAS TAREAS DE JVM

    La seccin siguiente proporciona una discusin ms comprensiva de las tres tareas principales realizadas por el JVM: . Codifica las Cargas .- Realizadas por el cargador de clase. . Verifica el cdigo .- Realizadas por el verificador del bytecode. . Ejecuta el cdigo .- Realizadas por el intrprete del runtime.

    EL CARGADOR DE CLASE El cargador de clase carga todas las clases necesarias para la ejecucin de un programa. El cargador de clase agrega la seguridad separando los espacios del los nombres para las clases del sistema del archivo local importados de las fuentes de la red. Esto limita cualquier aplicacin del Caballo de Troya, porque las clases locales siempre son cargadas primero. Despus de que todas las clases han estado cargado, el diseo de memoria del archivo ejecutable es determinado. A estas alturas, las direcciones de memoria asignadas son especficas a las referencias simblicas y la tabla del lookup se crea.

    24

  • EL VERIFICADOR DE BYTECODE

    El Cdigo del software de Java pasa varias pruebas antes de ejecutarse en su mquina. El JVM pone el cdigo a travs de un verificador del bytecode que prueba el formato de los fragmentos del cdigo y revisando fragmentos de cdigo para cdigo ilegal que forja los indicadores, viola los derechos de acceso en los objetos, o intenta el cambio de tipo de objeto. Nota.- Todos los archivos de la clase son importantes por el paso de la red a travs del verificador del bytecode. El Proceso de la comprobacin El verificador del bytecode hace cuatro pasos en el cdigo en un programa. Asegura que el cdigo se adhiera a las especificaciones de JVM y no hace violacin a la integridad del sistema. Si el verificador completa los cuatro pasos sin devolver un mensaje de error, entonces lo siguiente se asegura: . Las clases se adhieren a las especificaciones del formato del archivo de la clase de JVM. . No hay ninguna violacin de restriccin de acceso. . El cdigo no causa ninguna inundacin de pila de operacin o underflows. . Los tipos de parmetros para todos los cdigos operacionales son correctos. . Ninguna conversin de los datos ilegales, como convertir los enteros para objetar, las referencias, ha ocurrido.

    UNA SIMPLE APLICACIN DE JAVA Como cualquier otro idioma de la programacin, usted usa el idioma de programacin de Java para crear las aplicaciones. El Codigo 2.1 y 2.2 muestra una simple aplicacin de Java que imprime un saludo al mundo. Cdigo 2.1.- La Aplicacin del TestGreeting.java 1 // 2 // Sample "Hello World" application 3 // 4 public class TestGreeting { 5 public static void main (String[] args) { 6 Greeting hello = new Greeting(); 7 hello.greet(); 8 } 9 }

    25

  • Cdigo 2.2.- La Clase de Greeting.java 1 public class Greeting { 2 public void greet() { 3 System.out.println("hi"); 4 } 5 } LA APLICACIN DE TESTGREETING Cdigo 2.3.- Linea 13 1 // 2 // Sample "Hello World" application 3 // En el programa las lneas 1-3, son las lneas del comentario. Cdigo 2.4.- Lnea 4 4 public class TestGreeting { La Linea 4 declara el nombre de la clase como TestGreeting. Un nombre de la clase especificada en un archivo de la fuente del archivo de classname.class que se crea cuando el archivo de la fuente esta compilndose. Si usted no especifica un directorio designado para el compilador a usar, este archivo de la clase estar en el mismo directorio como el cdigo de la fuente. En este caso, el compilador crea un archivo llamado TestGreeting.class. Contiene el cdigo compilado para la clase pblica TestGreeting. Cdigo 2.5.- Lnea 5 5 public static void main (String args[]) { La linea 5 es donde el programa empieza a ejecutarse. El intrprete de La tecnologa de Java debe encontrar esto definido exactamente o se negara a ejecutar el programa. Otros idiomas de la programacin, notablemente el C y C++, tambin usan la declaracin main () como el punto de partida para la ejecucin. Varias partes de esta declaracin se describe aqu brevemente. Los detalles se cubren despus en este curso. Si el programa acepta cualquier argumento en su lnea de orden, stos son antes del main () el mtodo en una serie de String llamado args. En este ejemplo, no se usa ningn argumento. Lo siguiente describe cada elemento de la Lnea 5:

    26

  • . public.- El mtodo main () puede accederse por algo, incluso en el intrprete de la tecnologa java. . static.- Esta palabra clave le dice al compilador que el mtodo main () es utilizable en el contexto de la clase TestGreeting. En ningn caso del la clase se necesita ejecutar los mtodos estticos. . void.- Esta palabra clave indica que el mtodo principal () no devuelva algn valor. Esto es importante porque el idioma de la programacin de Java realiza la comprobacin cuidadosa para confirmar que los mtodos llamados de tipo return ueron declarados. . String args[].- Este mtodo declara solo el parmetro al mtodo principal, el args, y tiene una serie de tipo String. Cuando este mtodo se llama, el parmetro del args contiene los argumentos tecleados en la lnea del orden que sigue el nombre de la clase; por ejemplo: java TestGreeting args[0] args[1] . . . Cdigo 2.6.- Lnea 6 6 Greeting hello = new Greeting(); La linea 6 ilustra cmo crear un objeto, referido por la variable Hola. La nueva sintaxis del Saludo le dice al intrprete de java que construya un nuevo objeto del Saludo de la clase. Cdigo 2.7.- Lnea 7 7 hello.greet(); La lnea 7 muestra una llamada del objeto del mtodo. Esta llamada dice hola al objeto para saludar al mundo. La aplicacin de este mtodo se muestra adelante en las lneas 35 del archivo de Greeting.java. Cdigo 2.8.- Linea 89 8 } 9 } Las lneas 89 del programa, las dos llaves, cierran el mtodo main () y la clase TestGreeting, respectivamente. LA CLASE SALUDO Cdigo 2.9.- Lnea 1 1 public class Greeting { La linea 1 declara la clase Saludo.

    27

  • Cdigo 2.10.- Linea 24 2 public void greet() { 3 System.out.println(hi); 4 } Las lneas 24 muestran la declaracin de un mtodo. Este mtodo es el public declarado, hacindolo accesible al programa de TestGreeting. l no devuelve un valor, tan solo se usa como el tipo del return. El mtodo saludo enva un mensaje al String del rendimiento normal. El mtodo println () se usa para escribir el mensaje del rendimiento normal. Cdigo 2.11.- Lnea 5 5 } La linea 5 cierra la declaracin de la clase Saludo. COMPILANDO Y EJECUTANDO EL PROGRAMA DE TESTGREETING Despus de que usted ha creado el archivo fuente TestGreeting.java, complelo con la lnea siguiente: javac TestGreeting.java Si el compilador no devuelve cualquier mensaje, el nuevo archivo, TestGreeting.class se guarda en el mismo directorio como la fuente del archivo, a menos que se especifique por otra parte. El archivo de Greeting.java se ha compilado en Greeting.class. Esto se hace automticamente por el compilador porque los TestGreeting usan la clase Saludo. Para ejecutar su aplicacin de TestGreeting, use el intrpretela de java. Las herramientas ejecutables para la tecnologa de Java ( javac, java, javadoc, y as sucesivamente) se localiza en el directorio del Bin. java TestGreeting Nota.- Usted debe poner la variable PATH Environment y encontrar el java y el javac; asegure que incluya java_root/bin (donde java_root representa la raz del directorio dnde el Software de java es instalado).

    28

  • SOLUCIONANDO PROBLEMAS DE LA COMPILACIN

    Las secciones siguientes describen errores que usted podra encontrar cuando este compilando el cdigo. Compilando en Tiempo de Error. Lo siguiente son errores comunes vistos a compilar a tiempo, con los ejemplos del compilador o mensajes del runtime. Sus mensajes pueden variar, dependiendo qu versin de Java 2 SDK que usted est usando.

    el javac: no encontr el orden La variable PATH no es propiamente fija a incluirla al compilador del javac. El compilador del javac se localiza en el directorio Bin debajo del Equipo instalado (JDK) en el directorio del software.

    Greeting.java:4:cannot resolve symbol symbol : method printl (java.lang.String) location: class java.io.PrintStream System.out.printl("hi"); ^ El nombre del mtodo println se teclea incorrectamente.

    La clase y denominacin del archivo Si el archivo .java contiene una clase pblica, entonces debe tener el mismo nombre del archivo que esa clase. Por ejemplo, la definicin de la clase en el ejemplo anterior es: public class TestGreeting El nombre del archivo de la fuente debe ser TestGreeting.java. Si usted nombra el archivo TestGreet.java, entonces usted conseguira el mensaje de error: TestGreet.java:4: Public class TestGreeting must be defined in a file called "TestGreeting.java".

    La cuenta de la clase Usted debe declarar slo uno nivel, de la clase no esttica para ser pblica en cada archivo de la fuente, y debe tener el mismo nombre como el archivo de la fuente. Si usted tiene ms de una clase pblica, entonces usted conseguir el mismo mensaje como en el ejemplo anterior para cada clase pblica en el archivo no debe tener el mismo nombre que el archivo.

    29

  • LOS ERRORES DEL RUNTIME

    Algunos de los errores que se generan al teclear java TestGreeting son: No puede encontrar la clase TestGreeting

    Generalmente, esto significa que el nombre de la clase especifica el orden de la lnea que fue deletreada diferentemente que el archivo de filename.class. Por ejemplo: public class TestGreet { crea un TestGreet.class que no es el nombre de la clase (TestGreeting.class) que el compilador esperaba.

    La excepcin main en java.lang.NoSuchMethodError : main Esto significa que la clase que usted le dijo al intrprete que ejecutara no hace que tenga un mtodo principal esttico. Podra haber un mtodo principal, pero l no podra declararse con la palabra clave esttica o podra tener los parmetros mal declarados, como: public class TestGreet { En este ejemplo, el args es solo un String, no una serie de String. public static void main() { En este ejemplo, los cdigos se olvidaron de incluir cualquier lista del parmetro. La figura 2.3 ilustra cmo pueden compilarse los programasen Java y entonces ejecutarlos en el JVM. Hay muchas aplicaciones del el hardware JVM diferentes y plataformas del sistema operativo. TestGreeting.java Greeting.java

    Also compiles javac

    TestGreeting.class Greeting.class

    Also loads Java Can run on multiple platforms

    JVM

    UNIX JVM

    DOSJVM

    JavaOS

    C O M P I L E

    R U N T I M E

    30

  • MDULO 3

    PROGRAMACIN ORIENTADA A OBJETOS Los objetivos: En la realizacin de este mdulo, usted debe ser capaz a: . Definir los conceptos modelados: la abstraccin, encapsulacin, y paquetes . Discutir por qu puede reusar la aplicacin del cdigo de la tecnologa Java. . Definir clase, miembro, atributo, mtodo, constructor, y paquete . Use los modificadores de acceso privado y pblico apropiados para las pautas de encapsulacin . Invocar un mtodo dentro de un objeto particular . Use la documentacin en lnea API de la tecnologa Java Este mdulo es el primero de tres mdulos que describen los paradigmas de los objetos-orientados (OO) y los rasgos de la programacin orientada a Objetos del idioma de Java. Relevancia Discusin.- Las preguntas siguientes son pertinentes al material presentado en este mdulo: . Cul es su comprensin de anlisis y diseo del software ? _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ . Cul es su comprensin de rehusar el diseo del cdigo? _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ . Qu rasgos hacen que el idioma de programacin de Java posea un idioma Orientado-Objetos? _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ . Defina el trmino Orientado-Objetos. _____________________________________________________________ _____________________________________________________________ _____________________________________________________________

    31

  • LA INGENIERA DEL SOFTWARE Es muy difcil disear un software a menudo con la disciplina adecuada . Para el el ltimo medio siglo, cientficos de la computadora, diseadores de software y arquitectos han buscado crear los sistemas del software ms fcil para el cdigo rehusable proporcionado. La Figura 3.1 muestras una historia breve del diseo del software.

    ToolKists / Frameworks / Object APIs (1990sUp) Java 2SDK AWT / J.F.C./Swing Jini JavaBeans JDBC

    Lenguages Orientados a Objetos (1980sUp) SELF-Smalltalk-Common Lisp Object System-Eiffel-C++ -Java

    Librerias / Functional APIs (1960sEarly 1980s)

    NASTRAN TCP/IP ISAM X-Windows OpenLook Lenguages de Alto Nivel (1950sUp) Sistemas Operativos (1960sUp)

    Fortran LISP C COBOL OS/360 UNIX MacOS Microsoft

    Cdigo Mquina ( 1940s )

    Figura 3.1.- Historia del Informe de Ingeniera del Software Al principio, ellos crearon los idiomas de la computadora para ocultar la complejidad del idioma y agregaron los procedimientos de sistema operativo de a cuerdo a los funcionamientos comnes, como abrir, leer y escribir los archivos. Otros diseadores agruparon colecciones de funciones comnes y los procedimientos de algunas librerias para calcular las cargas estructuradas diseando (NASTRAN), escribiendo el carcter y el byte entre las computadoras de una red (TCP/IP), accediendo los datos a travs de un ndice de el mtodo de acceso secuencial (ISAM), y creando las ventanas, los grficos en un amonestador (X-Windows y Open Look). Muchas de estas librerias manipularon los datos estructurados en el formulario de registro abierto, como el struct del lenguage C. El problema principal con las estructuras es que el diseador de la biblioteca no puede esconder la aplicacin de los datos usados en los procedimientos. Esto lo hace difcil para modificar la aplicacin de la libreria sin afectar el cdigo porque ese cdigo se ata a menudo a los detalles particulares de los datos de las estructuras.

    32

  • Para el ao 1980, El Programa Orientado a Objetos (OOP) se puso popular con C++. Uno de las ms grandes ventajas de OOP era la habilidad de esconder ciertos aspectos de la aplicacin de una libreria para que las actualizaciones no afecten el cdigo del cliente (asumiendo que la interfaz no cambia). La otra ventaja importante es que los procedimientos eran asociados con la estructura de los datos. La combinacin de atributos de los datos y procedimientos (llamados mtodos) son conocidos como una clase. Hoy el equivalente de las libreras de funciones son las herramientas de las libreras de las clases. Estas librerias proporcionan las clases para realizar muchos de los mismos funcionamientos como las librerias funcionales pero, con el uso de subclases, los programadores puede extender estas herramientas fcilmente para sus propias aplicaciones. Los Frameworks proporcionan al API que los diferentes vendedores puedan escoger la cantidad de flexibilidad y actuacin conveniente a sus aplicaciones. La tecnologa de Java es una plataforma que est continuamente extendida por los nuevos API y Frameworks, como la Fundacin de Java Classes/Swing (J.F.C. / swing) y la otra arquitectura de JavaBeans J.F.C ( la arquitectura del componente de la tecnologa de java), y el API de la Base de datos de Java de Connectivity (El API de JDBC). La lista del API de Java es larga y va creciendo.

    LA FASE DEL ANALISIS Y DISEO

    Hay cinco flujos de trabajo primarios en un proyecto de desarrollo de software:La Captura de requisito, Anlisis, diseo, Aplicacin y Prueba. Todos ellos son importantes, sin embargo, usted debe asegurar que usted tenga bastante tiempo para las fases del anlisis y del diseo. Durante la fase del Anlisis, usted define lo que el sistema se supone que quiere que logre. Usted hace esto definiendo el juego de actores (los usuarios, los dispositivos, y otros sistemas que actan recprocamente con el sistema propuesto) y las actividades que el sistema propuesto debe acomodar. Tambin, la fase del Anlisis debe identificar el Objeto dominio (fsico y conceptual) que el el sistema propuesto manipular y las conductas e interacciones entre estos objetos. Estas conductas llevan a cabo las actividades que el sistema propuesto debe apoyar. La descripcin de las actividades debe ser bastante detallada para crear el criterio bsico para la fase de la Prueba. Durante la fase del Diseo, usted define cmo el sistema lograr sus metas. En esta fase, usted crea el modelo de los actores, actividades, los objetos, y las conductas para el sistema propuesto. Para esta clase, usted usa El Lenguaje modelado (UML) planeando como su herramienta.

    33

  • Nota.- UML es un lenguaje grande y complejo. Usted usa slo una pequea porcin de l. El apndice B, la Referencia Rpida para UML, es una referencia a los elementos de UML que se usan en este curso. Tambin lo muestra un diagrama cmo se lleva a cabo el cdigo de un UML en la Tecnologa de Java. EJEMPLO DEL ANLISIS Y DISEO. Este mdulo usa el ejemplo de una compaa de envo. Usted asume un juego simple de requisitos:

    .El software debe apoyar una sola compaa de envo. La compaa de envo mantiene una flota de vehculos que transportan las

    cajas. El peso de las cajas es el nico factor importante para el vehculo. La compaa de envo posee dos tipos de vehculos: los camiones y las

    barcazas. Se pesan las cajas en balanzas para medir los kilogramos; sin embargo, el

    total de la carga del vehculo debe ser medido en newton. Nota.- Un newton es una medida de fuerza (o peso) que es equivalente a 9.8 veces la masa del objeto en kilogramos.

    Usted usa un GUI para guardar y agregar las cajas a los vehculos. Usted debe generar varios informes de los archivos rpidos.

    De estos requisitos, usted puede crear un plan de alto nivel:

    Los objetos siguientes deben representarse en el sistema: una compaa y dos tipos de vehculos.

    Una compaa es agregado a los mltiples objetos del vehculo. Otros objetos funcionales existen: varios informes y pantallas de GUI.

    ABSTRACCIN El plan del software ha movido las estructuras de bajo nivel, como escribir en el cdigo mquina, hacia muchos niveles ms altos. Hay dos fuerzas interrelacionadas que guiaron este proceso: la simplificacin y abstraccin. La simplificacin estaba en el trabajo cuando los diseadores de lenguajes tempranos construyeron el lenguaje de alto nivel, como las declaraciones IF y FOR, fuera de los cdigos de la mquina. La abstraccin es la fuerza que esconde detrs de la aplicacin privada los detalles de la interfaz pblica. El concepto de abstraccin llev al uso de subprogramas (las funciones) en los lenguajes de alto nivel y al apareamiento de funciones y datos en los objetos. A los niveles ms altos, la abstraccin llev al desarrollo de Frameworks y Los API.

    34

  • LAS CLASES Y BLUEPRINTS PARA LOS OBJETOS

    As como un dibujante puede crear un blueprint para un dispositivo que puede usarse para construir los dispositivos reales, una clase es un blueprint del software que muchas veces usted puede usar al instante (es decir, crear) muchos objetos individuales. Una clase define el juego de elementos de los datos (los atributos) y define a los objetos, tambin, como el juego de conductas o funciones (llamadas mtodos) que manipulan el objeto o realiza las interacciones entre los objetos relacionados. Los atributos y los mtodos juntos se les llama miembros. Por ejemplo, un objeto del vehculo enviando la aplicacin deben guardar su carga mxima y actual junto con los mtodos por agregar una caja (con un cierto peso) al vehculo. El lenguaje de programacin de la Tecnologa de Java apoya tres rasgos de la llave de OOP: la encapsulacin, herencia, y poliformismo. Nota.- La Encapsulacin se cubre en La Encapsulation ' ' en las pginas 3-15. La herencia y poliformismo se describen en el Mdulo 10, Diseo de las clases. DECLARANDO LAS CLASES EN LA TECNOLOGA JAVA. La declaracin de las clases toma el formulario siguiente: * class { * * * } El puede ser cualquier identificador legal, y es el nombre de la clase declarada. Hay varios posibles en las palabras claves, pero para ahora, slo use public. Esto declara que la clase es accesible al universo. El cuerpo de la clase declara el juego de atributos de los datos, constructores y los mtodos asociados con la clase. El cdigo 3.1 muestra un ejemplo de la declaracin de clase. Cdigo 3.1.- Ejemplo de Declaracin de Clase. 1 public class Vehicle { 2 private double maxLoad; 3 public void setMaxLoad(double value) { 4 maxLoad = value; 5 } 6 }

    35

  • DECLARANDO ATRIBUTOS La declaracin de un atributo del objeto toma el formulario siguiente: * [ = ]; Ejemplo: 1 public class Foo { 2 private int x; 3 private float y = 10000.0F; 4 private String name = "Bates Motel"; 5 } El puede ser cualquier identificador legal y es el nombre del atributo declarado. Hay varios posibles valores para el , pero po ahora, use public o private. La palabra clave private declara solo el atributo si es accesible a los mtodos dentro de esta clase. El puede ser cualquier atributo de tipo primitivo ( int, float, y as sucesivamente) o cualquier clase. DECLARANDO LOS MTODOS Para definir los mtodos, el lenguaje de programacin java usa un acercamiento que es similar a otros idiomas, particularmente el C y C++. La declaracin bsica toma el formulario siguiente: * ( * ) { * } El puede ser cualquier identificador legal, con algunas restricciones basadas en los nombres que ya estn uso. El es el segmento optativo y puede llevar varios y diferentes modificadores, incluyendo (pero no limitados) public, protected y private. El modificador de acceso pblico indica que el mtodo puede ser llamado de otro cdigo. El mtodo privado indica que una parte del mtodo slo se llamara por los otros mtodos en la clase. El mtodo protegido se describe despus en este curso. El indica el tipo de valor vuelto por el mtodo. Si el mtodo no devuelve un valor, debe declararse como nulo. La Tecnologa de Java es rigurosa sobre los valores vueltos y si la declaracin de el mtodo devuelve un int, por ejemplo, que entonces el mtodo debe volver un int de todos los posibles caminos del retorno (y slo puede invocarse en contextos que esperan volver un int). Use la declaracin del retorno dentro de un mtodo para pasar un valor atrs.

    36

  • El de la lista permite al argumento valorar para ser pasado en un mtodo. Los elementos de la lista estn separados por las comas, mientras cada elemento consiste de un tipo y un identificador. EJEMPLOS El cdigo 3.2 muestra dos mtodos para la clase Dog. El getWeight del mtodo no usa ningn parmetro para el ingreso de datos de peso en el atributo. Un valor es vuelto de un mtodo que usa la declaracin del return (Lnea 4). El mtodo setWeight modifica el valor de peso con el newWeight del parmetro, este no devuelve valor. Este mtodo usa una declaracin condicional a restringir el cdigo del cliente de poner el peso del Dog a un nmero negativo cero. Cdigo 3.2.- Ejemplos del mtodo 1 public class Dog { 2 private int weight; 3 public int getWeight() { 4 return weight; 5 } 6 public void setWeight(int newWeight) { 7 if ( newWeight > 0 ) { 8 weight = newWeight; 9 } 10 } 11 }

    ACCEDIENDO A LOS MIEMBROS DEL OBJETO, En el ejemplo anterior, usted vio la siguiente lnea de cdigo en El mtodo de TestDog.main: d.setWeight(42); Esta lnea de cdigo dice que los objetos d (d realmente es una variable, que sostiene la referencia a un objeto de tipo Dog) ejecutan su mtodo setWeight. Esto se llama la anotacin del punto. El operador del punto permite que acceda el atributo no-private y los miembros del mtodo de una clase. Dentro de la definicin de un mtodo, usted no necesita usar la anotacin del punto por acceder a los miembros locales. Por ejemplo, el mtodo setWeight del la clase Dog no usa la anotacin del punto para acceder el atributo de peso. El cdigo 3.3 muestra la conducta de los mtodos del Dog. Cuando el objeto Dog crea la variable de peso y el Weight se inicializa a 0. Por consiguiente, el mtodo getWeight devuelve 0. En la lnea 6 de este cdigo el peso se pone de 42; ste es un argumento vlido y el mtodo setWeight pone el peso inconstante.

    37

  • Sin embargo, poniendo el peso a 42 (Lnea 9) es ilegal y el mtodo setWeight no altera el peso inconstante. Cdigo 3.3.- Ejemplo de Invocacin de Mtodos 1 public class TestDog { 2 public static void main(String[] args) { 3 Dog d = new Dog(); 4 System.out.println("Dog ds weight is " 5 + d.getWeight()); 6 d.setWeight(42); 7 System.out.println("Dog ds weight is " 8 + d.getWeight()); 9 d.setWeight(-42); 10 System.out.println("Dog ds weight is " 11 + d.getWeight()); 12 } 13 } El rendimiento es: Dog ds weight is 0 Dog ds weight is 42 Dog ds weight is 42

    OCULTACIN DE INFORMACIN Suponga que usted tiene una clase de MyDate que incluye los atributos: da, mes, y ao. La Figura 3.2 muestra un diagrama de la clase de una posible aplicacin de la clase MyDate. MyDate +day : int +month : int +year : int Figura 3.2.- Diagrama de una clase UML de la Clase de MyDate Una aplicacin simple permite el acceso directo a estos atributos de los datos, por ejemplo: public class MyDate { public int day; public int month; public int year; }

    38

  • Entonces los accesos del cdigo del cliente directamente los atributos cometen los errores, por ejemplo (d se refiere a un objeto de MyDate): d.day = 32; // invalid day d.month = 2; d.day = 30; // plausible but wrong d.day = d.day + 1; // no check for wrap around Para resolver el problema, esconda el datos atribuidos hacindolos privados y proporcione los mtodos de acceso de recuperacin, getXyz (), qu se llaman a menudo getters, y los mtodos de acceso de almacenamiento, setXyz (), qu se llaman a menudo los setter. La Figura 3.3 muestra otro diagrama de UML que hace que el MyDate clasifique y esconda las variables de los getter y mtodos del setter. MyDate

    -day : int -month : int -year : int

    +getDay() +getMonth() +getYear() +setDay(int) : boolean +setYear(int) : boolean +setMonth(int) : boolean

    Verify days is month

    Figura 3.3.- Escondiendo las Variables de la Clase de MyDate Estos mtodos permiten a la clase modificar los datos interiores, pero ms pretenciosamente, para verificar que los cambios pedidos son vlidos. Por ejemplo: MyDate d = new MyDate(); d.setDay(32); // invalid day, returns false d.setMonth(2); d.setDay(30); // plausible but wrong, setDay returns false d.setDay(d.getDay() + 1); // this will return false if wrap around needs to occur

    39

  • ENCAPSULACION Encapsulacin es la metodologa de esconder ciertos elementos de la aplicacin de una clase pero manteniendo una interfaz pblica con el software. sta es una extensin de informacin que esconde porque la informacin de los datos en los atributos es significante en los elemento de una clase para la aplicacin. Por ejemplo, el programa para la clase MyDate podra decidir la representacin interior de una fecha como el nmero de das desde el principio de alguna poca. Esto podra hacer ms fcil las comparaciones de la fecha y los intervalos de la fecha. Antes el programador encapsulaba los atributos detrs de una interfaz pblica, ahora el programador puede hacer este cambio sin afectar el cdigo del cliente. La Figure 3.4 muestra esta variacin en la clase MyDate.

    MyDate

    -date : long

    +getDay() +getMonth() +getYear() +setDay(int) : boolean +setYear(int) : boolean +setMonth(int) : boolean -isDayValid(int) : boolean

    Figura 3.4.- Representacin de la flexibilidad Datos de la Encapsulacin. DECLARANDO CONSTRUCTORES. Un constructor es un juego de instrucciones que se disearon para inicializar un caso. Pueden pasarse los parmetros al constructor de la misma manera en cuanto a un mtodo. La declaracin bsica toma el formulario siguiente: [] ( * ) { * } El nombre del constructor siempre debe estar igual que el nombre de la clase. Si presenta, los nicos modificadores vlidos () para constructores es pblico, protegido, y privado. El de la lista es igual que para las declaraciones del mtodo. Nota.- Constructores no son los mtodos. Ellos no tienen el valor del return y no se hereda. Por ejemplo: 1 public class Dog { 2 private int weight; 3 4 public Dog() { 5 weight = 42; 6 }

    40

  • La clase Dog tiene un sola variable del caso peso . El constructor (sin ningn parmetro) inicializa el peso a 42. Tambin pueden declararse constructores con parmetros. Esto se discute despus en este curso. EL CONSTRUCTOR PREDEFINIDO Cada clase tiene por lo menos un constructor. Si usted no le escribe a un constructor, el lenguaje de programacin java mantiene uno. Este constructor no toma ningn argumento y tiene un cuerpo vaco. El constructor predefinido le permite que cree los casos del objeto con new Xyz (); por otra parte, usted debe mantener a un constructor en cada clase. Nota.- Si usted agrega cualquier declaracin del constructor a una clase que previamente no tena ningn constructor explcito, usted pierde al constructor predefinido. A menos que el constructor que usted escribi no tome ningn argumento, llama a new Xyz ()y compila los errores. DISEO DEL ARCHIVO FUENTE.

    Un archivo fuente toma el formulario siguiente: [] * + Nota.- El signo (+) indica uno o ms. Un archivo fuente, debe contener una definicin de la clase por lo menos. El orden de estos artculos es importante. Es decir, cualquier declaracin de importancia debe preceder todas las declaraciones de la clase y, si usted usa una declaracin del paquete, se debe preceder las clases e importaciones. El nombre del archivo fuente debe estar igual que el nombre de la declaracin en ese archivo pblico. Un archivo fuente puede incluir ms de una declaracin de clase, pero slo una clase puede declararse pblica. Si un archivo fuente no contiene ninguna declaracin de la clase pblica, entonces el nombre del archivo fuente es no restringido. Sin embargo, es la prctica buena para tener un archivo fuente para cada declaracin de la clase y el nombre del archivo es idntico al nombre de la clase. Por ejemplo, el archivo VehicleCapacityReport.java debe aparecer como sigue:

    41

  • 1 package shipping.reports; 2 3 import shipping.domain.*; 4 import java.util.List; 5 import java.io.*; 6 7 public class VehicleCapacityReport { 8 private List vehicles; 9 public void generateReport(Writer output) { 10 // code to generate the report 11 } 12 }

    LOS PAQUETES DEL SOFTWARE Los sistemas del software son grandes. Es comn agruparse las clases en los paquetes para aliviar la direccin del sistema. UML incluye el concepto de paquetes en su lenguaje modelado. Los paquetes pueden contener las clases as como otros paquetes que forman una jerarqua de paquetes. Un ejemplo de la estructura de un paquete se ilustra en la Figura 3.5. Owns 0..*

    Shipping

    GUI

    reports

    domain

    company vehicle

    Truck RiverBage

    Figura 3.5.- Ejemplo del Diagrama de UML de Paquetes de Java

    Hay muchas maneras de agrupar las clases en los paquetes significantes. No hay ninguna manera correcta o mala; pero una tcnica comn es agrupar las clases en un paquete por la similitud semntica. Por ejemplo, un sistema de software de envo podra contener un dominio de los objetos (como la compaa, vehculos, cajas, los destinos, y as sucesivamente), un juego de informes, y un juego de tableros de GUI que se usan para crear la aplicacin principal de entrada de datos. El GUI e informa de los subsistemas dependen del paquete del dominio. El paquete UML puede ser til para los subsistemas modelados u otras agrupaciones segn su necesidad. Todos estos paquetes son contenidos en el paquete nivelado llamado envo.

    42

  • LA DECLARACIN DEL PAQUETE La tecnologa de Java proporciona la declaracin del paquete como una manera de agrupar las clases relacionadas. La declaracin del paquete es la siguiente: package [.]*; Usted puede indicar esa clase en un archivo fuente que pertenezca a un paquete particular usando la declaracin del paquete; por ejemplo: 1 package shipping.domain; 2 3 // Class Vehicle of the domain sub-package within 4 // the shipping application package. 5 public class Vehicle { 6 ... 7 } Cualquier declaracin del paquete, debe ser al principio del archivo fuente. Usted puede precederlo con un espacio blanco y comentarios, pero nada ms. Slo una declaracin del paquete se permite, y gobierna totalmente el archivo fuente. Si un archivo fuente no contiene la declaracin del paquete, entonces las clases declaradas en ese archivo pertenecen al annimo (el valor predeterminado) del paquete. Los nombres del paquete son jerrquicos y estn separados por los puntos. Es usual para los elementos del nombre del paquete para ser completamente pequeos. Sin embargo, el nombre de la clase normalmente empieza con una carta importante, y usted puede capitalizar primero la carta de cada palabra adicional para distinguir las palabras con el nombre de la clase. Estas y otras convenciones nombradas se describen en Codificando las Convenciones del Lenguaje de Programacin Java ' ' en la pgina 4-21. Nota.- Si una declaracin del paquete no es incluido en el archivo, entonces todas las clases, declaradas en ese archivo pertenecen al paquete predefinido (es decir, un paquete con ningn nombre).

    43

  • LA DECLARACIN DEL IMPORT La declaracin del import toma la forma siguiente: import [.].; import [.].*; Cuando usted quiere usar los paquetes, use la declaracin de import para decir al recopilador dnde encontrar las clases. De hecho, el nombre del paquete (por ejemplo, shipping.domain) parte del nombre de las clases dentro del paquete. Usted podra referirse a la clase de la Compaa como shipping.domain.Company, o usted podra usar la declaracin del import y simplemente el nombre de la clase de la Compaa. Nota.- Las declaraciones de import deben preceder todas las declaraciones de la clase. Lo siguiente es un fragmento del archivo que usa la declaracin de import. 1 package shipping.reports; 2 3 import shipping.domain.*; 4 import java.util.List; 5 import java.io.*; 6 7 public class VehicleCapacityReport { 8 private Company companyForReport; 9 ... 10 } Cuando usted usa una declaracin del paquete, usted no necesita importar el mismo paquete o cualquier elemento de ese paquete. Recuerde que la declaracin del import se usa para hacer las clases en otros paquetes accesible a la clase actual. La declaracin del import especifica la clase a la que usted quiere el acceso. Por ejemplo, si usted quiere slo la clase del Escritor (del paquete de java.io) incluyendo en el espacio el nombre actual, entonces usted usara: import java.io.Writer; Si usted quiere el acceso a todas las clases dentro de un paquete, use *. por ejemplo, para acceder a todas las clases en el paquete java.io , use: import java.io.*;

    44

  • Nota.- La declaracin del import le permite usar los nombres cortos de la clase nada ms en su programa fuente. Una declaracin del import no causa que el compilador cargue algo adicional en la memoria activa. Respecto a esto, la declaracin del import es bastante diferente a la declaracin del #include en C o C++. La declaracin del import, si no usa el (*), no tendra efecto en el archivo de rendimiento de la clase ni cualquier efecto en la actuacin del runtime. Tambin es muy improbable que cualquier declaracin del import causar cualquier diferencia en la recopilacin DISEO Y PAQUETES DEL DIRECTORIO. Se guardan los paquetes en un rbol del directorio que contiene una rama que es el nombre del paquete. Por ejemplo, el archivo de Company.class debe existir en la estructura del directorio mostrada en la Figura 3.6. Shipping/ domain/ company.class vehicle.class RiberBarge.class Truck.class GUI/ Reports/ vehicleCapacityReport.class

    Figura 3.6.- Ejemplo de la estructura de un Directorio en el paquete de la clase.

    45

  • El DESARROLLO Es comn estar trabajando en varios proyectos de desarrollo. Hay muchas maneras de organizar sus archivos de desarrollo. Esta seccin describe una tcnica. La Figura 3.7 muestra una ejemplo del desarrollo jerrquico de un directorio para un proyecto de desarrollo. El elemento importante de esta jerarqua es que el archivo fuente de cada proyecto est separado de los archivos (la clase) compilados. javaProjects/ shippingPrj/ scr/ Shipping/ domain/ GUI/ Reports/ docs/ classes/ Shipping/ dmain/ GUI/ Reports/ Figura 3.7.- Ejemplo de la Estructura del Directorio de un Proyecto de Desarrollo COMPILANDO USANDO LA OPCIN -d Normalmente, el compilador de Java pone a la clase que se archive en el mismo directorio como el archivo fuente. Usted declara que la clase archiva a otro directorio usando la opcin de d del orden de javac. La manera ms simple de compilar los archivos dentro de los paquetes es estar trabajando en el directorio empezando por el paquete. (En este ejemplo, el directorio del src.) Para Compilar todos los archivos dentro del paquete shipping.domain deben tener a las clases compiladas acabadas en su directorio del paquete correcto bajo ShippingPrj/class /, y teclee lo siguiente: cd JavaProjects/ShippingPrj/src javac - d.. / classes shipping/domain / *. java

    46

  • EL DESPLIEGUE Usted puede desplegar una aplicacin en una mquina sin manipular la variable del usuario del ambiente CLASSPATH . Normalmente, esto se hace mejor para crear un archivo de Java ejecutable (JAR). Para crear un archivo JAR ejecutable, usted debe crear un archivo temporal que indica el nombre de la clase que contiene su mtodo principal, as,: Main-Class: mypackage.MyClass Luego, construye el archivo normal del JAR slo que usted agrega una opcin adicional para que los volmenes de este archivo temporal se copien en el archivo META-INF/MANIFEST.MF. Haga esto usando la opcin m , as, producira un efecto desagradable: jar cmf tempfile MyProgram.jar Finalmente, el programa simplemente puede ejecutarse en un orden as: java -jar /path/to/file/MyProgram.jar Nota.- En algunas plataformas, haciendo doble clic absolutamente en el icono para el archivo ejecutable del JAR es suficiente para lanzar el programa. EL DESPLIEGUE DE LA LIBRERA A veces usted necesita desplegar el cdigo de la libreria en un archivo del JAR. En tales situaciones es posible copiar el archivo JAR en la extencin del subdirectorio de la librera del directorio, en el directorio principal del JRE. Tenga cuidado cuando usted hace esto, porque si usted despliega las clases de esta manera que ellos normalmente tienen el privilegio de la seguridad, podra causar los problemas del runtime si cualquier clase que tenga la denominacin choca con otras clases en el centro JDK o ese ha sido instalado de esta manera. TERMINOLOGA Lo siguiente describe algunas de las condiciones introducidas en este mdulo: . La clase.- Una manera de definir nuevos tipos de objetos en el lenguaje de programacin java. La clase puede ser considerada como un blueprint, qu es el modelo del objeto que usted est describiendo. . El objeto.- Un caso real de una clase. Un objeto tambin es conocido como un caso. . El atributo.- Un elemento del datos de un objeto. Un atributo guarda la informacin para un objeto. Un atributo tambin est conocido como un miembro de datos, una variable del caso, o un campo de datos. . El mtodo.- Un elemento funcional de un objeto. Un mtodo tambin es conocido como una funcin o un procedimiento. . Constructor.- Un mtodo de la estructura inicializada a un nuevo objeto. Los Constructores tienen el mismo nombre que la clase. . El paquete.- Una agrupacin de clases, subpaquetes, o ambos.

    47

  • USANDO LA DOCUMENTACIN API DE LA TECNOLOGA JAVA Un juego de archivos proporcionados de HTML documenta el API. El diseo de esta documentacin es jerrquica, para que la pgina de bienvenida liste todos los paquetes como hipervnculo. Cuando usted selecciona un eslabn de las clases del paquete particular, se listan los miembros de ese paquete. Seleccionando un eslabn de la clase del paquete en una pgina de informacin sobre esa clase. La Figura 3.8 muestras tal clase.

    Figura 3.8.- Documentacin API Con HTML3

    48

  • Las secciones principales de un documento de la clase incluyen lo siguiente: . La jerarqua de la clase . Una descripcin de la clase y su propsito general . Una lista de atributos . Una lista de constructores . Una lista de mtodos . Una lista detallada de atributos con sus descripciones . Una lista detallada de constructores con las descripciones y las listas del parmetro . Una lista detallada de mtodos con las descripciones y las listas del parmetro.

    49

  • MDULO 4

    IDENTIFICADORES, TIPOS Y PALABRAS CLAVE. Los objetivos: En la realizacin de este mdulo, usted debe ser capaz a: . Comentar el uso de un programa fuente . Distinguir entre los identificadores vlidos y no vlidos . Reconocer las palabras claves de la tecnologa Java . Listar los ocho tipos primitivos . Definir los valores literales para los tipos numricos y textuales . Definir las condiciones de la variable primitiva y la variable de la referencia . Declarar variables de tipo class . Construir un objeto que usando new . Describir la inicializacin predefinida . Describir la importancia de la referencia de una variable . Declarar la consecuencia de asignar variables de tipo class Este mdulo describe algunos de los componentes bsicos usados en el programa de Java, incluso las variables, palabras claves, los tipos primitivos, y los tipos class. RELEVANCIA Discusin.- Las preguntas siguientes son pertinentes al material presentado en este mdulo: . Usted sabe los tipos primitivos de la Tecnologa Java? _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ . Puede usted describe la diferencia entre variables primitivas comparado valores con las referencias del objeto? _____________________________________________________________ _____________________________________________________________ _____________________________________________________________

    50

  • COMENTARIOS Los tres estilos permisibles para insertar los comentarios son: // comment on one line /* comment on one * or more lines */ /** documentation comment * can also span one or more lines */ Los comentarios de la documentacin se ponen inmediatamente antes de una declaracin (de una variable, mtodo, o clase) e indican que los comentarios deben ser incluidos en cualquier documentacin que se genera automticamente (por ejemplo, el Archivo de HTML generado por el orden del javadoc) para servir como una descripcin del artculo declarado. Nota.- El formato de estos comentarios y el uso de la herramienta de Javadoc es descrito en la documentacin para Java 2 SDK. Refirase a la siguiente pgina (URL): http://java.sun.com/j2se/1.5.0/docs/guide/javadoc / LOS PUNTOS Y COMAS, BLOQUES, Y EL ESPACIO EN BLANCO En Java, una declaracin es una o ms lneas con cdigo que termina con un punto y coma (;). Por ejemplo, totals = a + b + c + d + e + f; es igual que totals = a + b + c + d + e + f; Un bloque, a veces llamada como una declaracin compuesta, es un grupo limitado de declaraciones abriendo y cerrando las llaves ({}). Un bloque tiene los rasgos tiles que se describen en el Mdulo 6, las Expresiones y Mando de Flujo. Pero ahora, simplemente piense en un bloque como un grupo de declaraciones que se reunen juntas. Lo siguiente son otros ejemplos de declaraciones del bloque o agrupaciones: // a block statement { x = y + 1; y = x + 1; }

    51

  • // a class definition is contained in a block public class MyDate { private int day; private int month; private int year; } // a block statement can be nested within // another block statement while ( i < large ) { a = a + i; // nested block if ( a == max ) { b = b + a; a = 0; } i = i + 1; } Usted puede tener el espacio en blanco entre los elementos del cdigo fuente. Cualquier cantidad de espacio blanco se permite. Usted puede usar el espacio en blanco, mientras incluye los espacios, las etiquetas y las nuevas lneas, reforzando la claridad y la apariencia visual, de su cdigo fuente. Compar: {int x;x=23*54;} con: { int x; x = 23 * 54; } IDENTIFICADORES En Java, un identificador es un nombre dado a una variable, clase, o mtodo. Los identificadores empiezan con una letra, guin (_), o por la seal ($). Los carcteres Subsecuentes pueden ser los digitos. Los identificadores no tienen longitud mxima. Lo siguiente son los identificadores vlidos:

    identifier userName user_name _sys_var1 $change

    52

  • En la Tecnologa Java las fuentes estn en 16 bits en lugar de 8 bits americanos del Cdigo normal para el Intercambio de Informacin (ASCII) de texto, para que una letra sea considerablemente ms ancha que simplemente una z y una Z. Mientras los identificadores pueden usar los caracteres del cdigo ASCII, considere las siguientes advertencias: . Unicode puede apoyar carcteres diferentes aunque parescan iguales. . Los nombres de la clase slo deben estar dentro de los carcteres de ASCII porque los sistemas de archivos no apoyan los carcteres de Unicode. Un identificador no puede ser una palabra clave, pero puede contener una palabra clave como su nombre. Por ejemplo, el thisOne es un identificador vlido, pero This no porque es una palabra clave en la Tecnologa de Java. Nota.- Los Identificadores que contienen la seal ($) es generalmente raro, aunque los lenguajes como el BASIC, junto con los sistemas de VAX/VMS, se hace un uso extenso de ellos. Porque ellos son poco familiares, es probablemente mejor evtarlos a menos que haya una convencin local u otra razn urgente para usar este smbolo en el identificador. LAS PALABRAS CLAVES DEL LENGUAJE DE PROGRAMACIN DE JAVA. Las palabras claves tienen el significado especial en el compilador de la Tecnologa Java. Ellos identifican un nombre un dato de tipo nombre o el nombre de la estructura del programa. La tabla 4.1, lista palabras claves que se usan en el Lenguaje de programacin Java. abstract continue for new switch assert default goto package synchronized boolean do if private this break double implements protected throw byte else import public throws case enum instanceof return transient catch extends int short try char final interface static void class finally long strictfp volatile const float native super while Lo siguiente son notas importantes sobre las palabras claves: . Las literales verdadero, falso, y nulo se escriben en letras minsculas, no en maysculas como en el lenguaje de C++. Hablando estrictamente, stas no son las palabras claves pero son literales; sin embargo, la distincin es acadmica. . No hay ningn operador del sizeof; el acceso de memoria directo no es posible para que la informacin salga sin valor.

    53

  • . Los goto y const no se usan como palabras clave en el lenguaje de programacin Java.

    LOS TIPOS BSICOS DEL LENGUAJE DE PROGRAMACIN JAVA. El lenguaje de programacin java tiene construidos muchos tipos de datos. stas son dos categoras anchas: los tipos de la clase y los tipos primitivos. Los tipos primitivos son los valores simples, no son los objetos. Los tipos de la clase se usan para tipos mas complejos, incluyendo todos los tipos que usted declara. Los tipos de la clase son los que crean objetos. LOS TIPOS PRIMITIVOS El lenguaje de programacin java define ocho datos primitivos que pueden ser considerados en cuatro categoras: . Lgico.- boolean . Textual.- char . ntegrales.- byte, short, int and long. . El punto flotante.- double y float Lgico.- boolean Representan los valores lgicos usando el boolean que toma uno dos valores: verdadero o falso. Estos valores pueden usarse para representar cualquier estado, como en y fuera de, o s y no. El tipo boolean tiene dos valores literales: verdadero y falso. El cdigo siguiente es un ejemplo de la declaracin e inicializacin de una variable de tipo boolean: // declares the variable truth as boolean and // assigns it the value true boolean truth = true; Nota.- No hay ningn lanzamiento entre el tipo entero y el tipo boolean. Algunos lenguajes, como el C y C++, permiten los valores numricos para ser interpretados como los valores lgicos. Esto no se permite en java; cuando un tipo boolean se requiere, usted puede usar solo valores lgicos. Textual.- Char Estos carcteres son representados usando el tipo char. Un Char se representa con 16 bit, sin asignar un carcter de Unicode. Usted debe adjuntar un char literal con las comillas (' '). por ejemplo: a ' La letra a \ t ' un tabulador \ u???? ' un carcter de Unicode especfico????, se reemplaza con exactamente cuatro digitos del hexadecimal. Por ejemplo, ' \ el u03A6 ' es el phi del digito griego [].

    54

  • Textual.- String Usted usa el tipo String que no es un tipo primitivo pero es un tipo de una clase, para representar las sucesiones de carcteres. Los carcteres son Unicode, para la anotacin de la barra inversa mostrada previamente tambin para el tipo char que trabaja en un String. A diferencia del C y C++, los Strings no acaban con \0. Un String literal es adjunto en las marcas de comillas dobles: "The quick brown fox jumps over the lazy dog." Algunos ejemplos de las declaraciones e inicializacin de las variables de tipo char y String son: / / declara e inicializa una variable de tipo char char ch = ' A '; / / declara dos variables de tipo char char ch1,ch2; / / declara dos variables String y las inicializa String greeting = Good Morning!! \ n"; String errorMessage = Record Not Found ! "; / / declara dos variables String String str1,str2; ntegrales.- byte, short, int, y long Hay cuatro tipos ntegros en el lenguaje de programacin Java. Cada tipo se declara con las palabras claves byte, short, int, o long. Usted puede representar literales de tipo ntegro que usan el decimal, octal, o el hexadecimal de la forma que sigue: 2 sta es la forma decimal para el entero 2. 077 el prefijo 0 indica un valor octal. 0xBAAC el 0x principal indica un valor hexadecimal. Los tipos numricos en el lenguaje de programacin java representan los nmeros asignados. Los literales ntegros son del tipo int a menos que se siga explcitamente por la letra L eso indica un valor largo. En el lenguaje de programacin java, usted puede usar o escribir la letra L en maysculas o minsculas. Escribirla en letras minsculas no es recomendable porque es difcil distinguirla del dgito 1. Las versiones literales del tipo Long mostradas previamente son: 2L La L indica que el valor 2 decimal es representado como un valor largo. 077L El prefijo 0 indica un valor octal. 0xBAACL El prefijo 0x indica un valor hexadecimal.

    55

  • El tamao para los cuatro tipos ntegros se muestran en la Tabla 4.2. La representacin del rango se define por la especificacin como un complemento 2's en el lenguaje de programacin java, y es plataforma-independiente. Tabla 4.2.- Tipos de Datos ntegros - Tamao y Rango Longitud de entero Nombre o Tipo Rango 8 bits byte From -27 to 27 -1 16 bits short From -215 to 215 -1 32 bits int From -231 to 231 -1 64 bits long From -263 to 263 -1 Punto flotante.- float y double Usted puede declarar una variable de tipo punto flotante usando las palabras claves float o double. La lista siguiente contiene ejemplos de nmeros de tipo punto flotante. Un literal numerico es un punto flotante si incluye un punto decimal o un exponente (la letra E o e), o se sigue por la letra F o f (flotador) o la letra D o d (double). Algunos ejemplos literales del punto flotante incluyen: 3.14 un valor simple de punto flotante (un doble) 6.02E23 Un valor grande de punto flotante 2.718F Un valor simple de tamao de float 123.4E+306D Un valor doble grande con D redundante Note.- El 23 despus de la letra E en el segundo ejemplo es implcitamente positivo. Ese ejemplo es equivalente a 6.02E+23. Los literales del punto flotante son por defecto dobles. Usted puede declarar un literal del tipo float aadiendo F o f al valor. El formato de un nmero del punto flotante se define por La Especificacin del Lenguaje de Java por el Instituto Elctrico e Ingenieros de la Electrnica (IEEE) 754, usando los tamaos mostrados en la tabla 4.3. Este formato es de la plataforma independiente.