Este Manual Imprescindible trata sobre la última y ampliada versión de Java, la 5.0. Estudia todas las novedades que Java ofrece a sus programadores; ventajas que permiten consolidarse de nuevo como el lenguaje de programación más importante de Internet. Este libro permitirá a aquellos usuarios que sólo han tenido un pequeño contacto con Java adquirir conocimientos profesionales del programa. Comienza con una introducción al lenguaje, deteniéndose en los conceptos básicos de programación para luego enseñar cómo diseñar, codificar y probar programas orientados a objetos con Java, centrándose en aquellos aspectos que son realmente importantes para trabajar en proyectos reales.
Cómo usar este libroY este libro... ¿para quién es?Una ayuda más: información de soporteConvenios utilizados en este libroIntroducción. Directo al granoJava nos rodea¿Qué es Java?¿Qué es Java 5.0?¿Por qué hemos elegido Java?¿Qué ofrece Java?SimplePortableInterpretadoRobustoDistribuidoCon arquitectura independienteLa API de JavaLa máquina virtual de Java (Java Virtual Machine)SeguroOrientado a objetosDinámicoMultihilo (multithread) y la programación concurrenteConclusiónNovedades de Java 5.0Java vsJava vs. C y C++Java vs. C#Java vs. JavascriptHemos acertadoCapítulo 1. Lo que ves es lo que hay: appletsIntroducción: What you see is what you getLos applets e InternetHola World Wide Web. Nuestro primer applet.El código JavaLa página HTMLCompilar el archivo JavaVisualizar el appletCreación y ejecución de un applet con NetBeansLos applets y HTMLLa etiqueta La etiqueta object¿Qué ocurre dentro de un applet? El ciclo de vida de un appletProfundizando en los applets: un ejemplo más completoCreación de gráficosEjemplo del ciclo de vidaAnimaciones en los appletsResumenCapítulo 2. Programar es un juego: sintaxis de JavaIntroducción: JavarkanoidAprender a gatear: colocación, comentarios, identificadores y palabras reservadasColocación del códigoComentariosIdentificadoresPalabras reservadasDescubrir los pies: tipos de datosTipos primitivos de datosEnterosRealesCaracteresBooleanosOtro tipo de datos: StringDar nuestro primer paso: literales y variablesLiteralesLiterales numéricosLiterales carácterLiterales cadenaVariablesDeclaración de variablesTipos de variablesInicialización de las variablesScope: alcance de una variable¿Qué hacemos con todo esto?Aprender a andar: operadoresOperador de asignaciónConversión de tipos automáticaCasting: conversión de tipos explícitaOperadores aritméticosOperadores relacionalesOperadores lógicosOperadores con objetosOperadores de cadenasOperadores de gestión de memoriaPrecedencia de operadoresResumenCapítulo 3. Sintaxis de Java (parte II)Introducción: pasar de andar a correrCorrer y esquivar obstáculos: instrucciones de control de flujoInstrucciones condicionalesCondicional if...elseCondicional switchOperador condicionalBucles: instrucciones iterativasBucle forBucle for/inBucle whileBucle do...whileInstrucciones de control generalBreakContinuePractica: una bola rebotonaLa estructura del appletEvitar parpadeos: doble bufferCargar nuestras imágenes: MediaTrackerNuestro ejemploResumenCapítulo 4. Arrays, queues, tipos enumeradosy autoboxing/unboxingIntroducciónArraysArrays unidimensionalesDeclarar el tipo base de los elementos del arrayReservar espacio de memoria para el arrayAñadir elementos en el arrayAcceder a los elementos del arrayArrays multidimensionalesObtener la longitud de un arrayEjemplo de uso de arrays: ladrillosOtras operaciones de los arraysQueuesCrear una queueAñadir elementos en la queueSacar elementos de la queueTipos enumeradosCrear y utilizar un tipo enumeradoCaracterísticas de los tipos enumeradosEjemplos de uso de tipos enumeradosAutoboxing y auto-unboxingAutoboxingAuto-unboxingUso de operadores en las clases wrapperUso de condicionales en las clases wrapperResumenCapítulo 5. Hacer las cosas bien: ProgramaciónOrientada a ObjetosIntroducción: pensar orientado a objetosObjetos: todo es un objetoClases: todo objeto viene de una claseDefinición de una claseCabecera de la claseCuerpo de la claseTodo junto: instanciar clases para obtener objetosCrear una referencia al objetoInstanciar la claseA tener en cuenta con las referencias: aliasing y duplicación de objetos, paso de parámetros y operadores de comparaciónAliasing y duplicación de objetosPaso de referencias por parámetroOperadores de objetosEjemplo: la clase SpriteResumenCapítulo 6. Programación Orientada a Objetos (parte II)Introducción: más POOHerenciaHerencia y accesibilidadHerencia y constructoresSobrecarga de métodosPolimorfismoClases abstractasInterfacesModificador finalPaquetesDefinir un paqueteImportar un paquetePaquetes interesantes de JavaImportar elementos estáticosResumenCapítulo 7. Nuestras clases y las clases de JavaIntroducciónNuestras clases: más JavarkanoidLas clases base: Sprite, Movible y ColisionaLas clases principales: Ladrillos, Bola y PalaEl applet que une todo: la clase JavarkanoidClases de JavaEl paquete java.langEl paquete java.utilColeccionesGenericsMás de java.utilEl paquete java.appletY las que quedanResumenCapítulo 8. Todos cometemos errores: manejo de erroresen JavaIntroducción: los otros errores, las excepcionesLa jerarquía de las excepcionesCapturar excepciones: uso de try, catch y finallyIntenta y captura: try...catchLa pila de llamadasCapturar excepciones más genéricasY para terminar: finallyLanzar excepciones: throw y throwsLanzar excepciones con throwLanzar excepciones con throwsCrear nuestras propias excepcionesResumenCapítulo 9. InteractividadIntroducción:El modelo de delegación de eventosEventosFuentes de eventosReceptores de eventosUn gran evento: manejo de eventosSólo para tus ojos: mejoras de JavarkanoidResumenCapítulo 10. Otra manera de interactuar: entrada/salidaIntroducciónEl flujo de datos: streamStream predefinidosStream de byteStream de caracteresPara qué nos interesan los stream de bytesEjemplo de lectura y escritura en la consolaEjemplo de lectura y escritura en ficherosPara qué nos interesan los otros stream: stream de caracteresJavarkanoid y la entrada/salida: editor de nivelesEl paquete java.nioResumenCapítulo 11. Juntos, pero no revueltos: MutithreadingIntroducción: qué es la programación concurrenteCómo programar concurrentemente en Java: los threadsEstados del threadInicial: crear un threadEn ejecución: comenzar y ejecutarParado: esperarMuerto: difícilmente reanudableLa clase ThreadCrear nuestros propios threadsCrear una subclase de ThreadImplementar la interfaz RunnableResumenCapítulo 12. Mutithreading (parte II)Introducción: más hilosTodos juntos: sincronización.SynchronizedSincronizar métodosSincronizar bloques de códigoNo revueltos: comunicación entre threadsEl nuevo paquete concurrencyProgramador de tareasColeccionesVariables atómicasSincronizadoresExchangerCyclicBarrierLocksResumenCapítulo 13. Una interacción conocida:ventanas en Java con SwingIntroducción: ventanas en JavaQué es SwingCómo funciona Swing: jerarquía de contenedores y componentesPaso 1: los contenedores de nivel más altoLa clase JFrameLa clase JDialog y JOptionPaneLa clase JAppletPaso 2: contenedores intermediosLa clase JPanelGestor de ubicación de componentes:la interfaz LayoutManagerPaso 3: los componentesEl componente botónEl componente etiquetaLos eventos en los componentesCambiando el Look&Feel de las aplicacionesResumenCapítulo 14. Multimedia: imagen, Java2D y sonidoIntroducción: un mundo de imágenes y sonidosGráficos bidimensionales: Java2D¿Qué puede hacer Java2D?¿Cómo se hace?Figuras básicas: geometríasRellenar y contornearRender: procesar los gráficosTransformaciónComposiciónClipearPautas de renderTodo juntoMuchas más características en Java2D¿Se me escucha ahí fuera? Sonido en JavaReproducción de sonido en un appletReproducción de sonido en una aplicación standaloneFicheros instrumentalesFicheros de muestrasResumenCapítulo 15. Multimedia y realidad: Java3DAcercarnos a la realidad: Java3DInstalación de Java3DFilosofía de Java3D: diagramasEl diagrama baseLa correspondencia con las clases Java3DLa correspondencia con los programas Java3DEl universo simplificado: SimpleUniverseNuestro primer ejemplo: un cuadrado que se convierte en un cuboDibujo del diagrama de escenaCódigo y ejecución del programa¿Un applet, una aplicación standalone o las dos cosas a la vez?Muchas clases nuevasLas etapas del programa 3DCrear el objeto Canvas3DConstruir la rama de contenidoCompilar el diagrama de escenaCrear el objeto SimpleUniverse y adaptarloa nuestras necesidadesUnir los subdiagramas a LocaleMovernos en tres dimensiones: transformacionesRotacionesTransform3DTransformGroupVector3fEjemplo de rotación: cubo en perspectivaDibujo del diagrama de escenaCódigo y ejecución del programa¡Esto se mueve!: animacionesCapacidad de modificación en tiempo de ejecuciónAñadir animaciones a nuestras escenasEjemplo de animación: todo me da vueltasDibujo del diagrama de escenaCódigo y ejecución del programaMucho más con Java3DResumenCapítulo 16. Queremos más JavaPodríamos no parar de leer nuncaJDBC: acceso a bases de datosBases de datos relacionalesSQL: Structured Query LanguageJDBC: Java DataBase ConnectivityServletCiclo de vida de un servletClases y objetos necesarios para crear un servletHttpServletRequestHttpServletResponseResponder a las peticionesJSP : Java Server PagesEntre el HTML y los servletComponentes de una página JSPScriptletDeclaracionesExpresionesEtiquetasDirectivasJava Beans y Enterprise Java Beans(EJB)Los JavaBeanEstructura de un JavaBeanJavaBean y JSPEJB: Enterprise JavaBeanContenedores EJBClasificación de los EJBEstructura del EJBDesplegar un beanModelo Vista ControladorErrores frecuentes de las arquitecturasArquitectura de 2 capasArquitectura de 3 capasArquitectura de n capasArquitectura MVC(Modelo Vista Controlador)Java y XMLXMLPIDTDEspacio de nombresXSL y XSLTXPathEsquemas XMLXQL¿Cómo mezclamos todo esto con Java?SAXDOMJAXPJava y XML: la unión hace la fuerzaRMI: Remote Method InvocationEsquema de funcionamiento RMIClases necesarias para utilizar RMIPasos para crear una aplicación RMIJava IDL y CORBA: programación distribuidaLa arquitectura CORBAPasos para crear una aplicación con Java IDLJMS: Java Message Server¿Cuándo es interesante utilizar JMS?JMS junto a otras tecnologías de la plataforma J2EEJINISCSLJava Web Start y JNLPJNLPJava Web StartNos vemosCapítulo 17. J2ME: Nuestro pequeño gran hombreQué es y qué necesitamos para desarrollar en J2ME¿Qué es J2ME?Herramientas de desarrollo: WTKCiclo de vida de un midletCrear aplicaciones con componentes estándarNuestro primer midletLibrería estándar de formulariosFormItemCommandListTextBoxAlertTickerY poco másDesarrollo de juegos en J2MECanvasEl paquete javax.microedition.lcdui.gameSonido en el móvilLibrerías opcionalesResumenApéndicesTodo lo que necesitamos para crear en JavaDescarga de JavaInstalar JavaConfigurar JavaVariable PATH en Windows 2000 y NTVariable PATH en Windows XPVariable PATH en Windows ME¿Ha funcionado?Disfrutar JavaCrear en JavaUna gran ayuda para desarrollar en Java¿Qué es NetBeans?Descarga de NetBeansInstalar NetBeansUso de NetBeansCrear un proyectoEscribir el código JavaCompilar y ejecutar nuestro programa JavaConclusiones del uso de NetBeansProgramar en Java sin utilizar NetBeansMáquina virtual de JavaCambios en el lenguajeGenericsAutoboxingBucle for mejoradoEnumeraciones (Enumerations)Importar estáticos (Static Imports)VarargsNovedades en la máquina virtualClases compartidasRecolector de basura (Garbage Collector)Reloj de alta resoluciónLibrerías baseLenguaje y utilidadesRedInternacionalizaciónInstrumentaciónSerializaciónMonitorización y mantenimientoLibrerías de integraciónRMICORBA, JavaIDL y RMI-IIOPJNDIInterfaz de usuarioInternacionalizaciónSonidoJava2DAWTSwingConclusionesÍndice alfabético
Introducción. Directo al granoJava nos rodea¿Qué es Java?¿Qué es Java 5.0?¿Por qué hemos elegido Java?¿Qué ofrece Java?SimplePortableInterpretadoRobustoDistribuidoCon arquitectura independienteLa API de JavaLa máquina virtual de Java (Java Virtual Machine)SeguroOrientado a objetosDinámicoMultihilo (multithread) y la programación concurrenteConclusiónNovedades de Java 5.0Java vsJava vs. C y C++Java vs. C#Java vs. JavascriptHemos acertado
Capítulo 1. Lo que ves es lo que hay: appletsIntroducción: What you see is what you getLos applets e InternetHola World Wide Web. Nuestro primer applet.El código JavaLa página HTMLCompilar el archivo JavaVisualizar el appletCreación y ejecución de un applet con NetBeansLos applets y HTMLLa etiqueta La etiqueta object¿Qué ocurre dentro de un applet? El ciclo de vida de un appletProfundizando en los applets: un ejemplo más completoCreación de gráficosEjemplo del ciclo de vidaAnimaciones en los appletsResumenCapítulo 2. Programar es un juego: sintaxis de JavaIntroducción: JavarkanoidAprender a gatear: colocación, comentarios, identificadores y palabras reservadasColocación del códigoComentariosIdentificadoresPalabras reservadasDescubrir los pies: tipos de datosTipos primitivos de datosEnterosRealesCaracteresBooleanosOtro tipo de datos: StringDar nuestro primer paso: literales y variablesLiteralesLiterales numéricosLiterales carácterLiterales cadenaVariablesDeclaración de variablesTipos de variablesInicialización de las variablesScope: alcance de una variable¿Qué hacemos con todo esto?Aprender a andar: operadoresOperador de asignaciónConversión de tipos automáticaCasting: conversión de tipos explícitaOperadores aritméticosOperadores relacionalesOperadores lógicosOperadores con objetosOperadores de cadenasOperadores de gestión de memoriaPrecedencia de operadoresResumenCapítulo 3. Sintaxis de Java (parte II)Introducción: pasar de andar a correrCorrer y esquivar obstáculos: instrucciones de control de flujoInstrucciones condicionalesCondicional if...elseCondicional switchOperador condicionalBucles: instrucciones iterativasBucle forBucle for/inBucle whileBucle do...whileInstrucciones de control generalBreakContinuePractica: una bola rebotonaLa estructura del appletEvitar parpadeos: doble bufferCargar nuestras imágenes: MediaTrackerNuestro ejemploResumenCapítulo 4. Arrays, queues, tipos enumeradosy autoboxing/unboxingIntroducciónArraysArrays unidimensionalesDeclarar el tipo base de los elementos del arrayReservar espacio de memoria para el arrayAñadir elementos en el arrayAcceder a los elementos del arrayArrays multidimensionalesObtener la longitud de un arrayEjemplo de uso de arrays: ladrillosOtras operaciones de los arraysQueuesCrear una queueAñadir elementos en la queueSacar elementos de la queueTipos enumeradosCrear y utilizar un tipo enumeradoCaracterísticas de los tipos enumeradosEjemplos de uso de tipos enumeradosAutoboxing y auto-unboxingAutoboxingAuto-unboxingUso de operadores en las clases wrapperUso de condicionales en las clases wrapperResumenCapítulo 5. Hacer las cosas bien: ProgramaciónOrientada a ObjetosIntroducción: pensar orientado a objetosObjetos: todo es un objetoClases: todo objeto viene de una claseDefinición de una claseCabecera de la claseCuerpo de la claseTodo junto: instanciar clases para obtener objetosCrear una referencia al objetoInstanciar la claseA tener en cuenta con las referencias: aliasing y duplicación de objetos, paso de parámetros y operadores de comparaciónAliasing y duplicación de objetosPaso de referencias por parámetroOperadores de objetosEjemplo: la clase SpriteResumenCapítulo 6. Programación Orientada a Objetos (parte II)Introducción: más POOHerenciaHerencia y accesibilidadHerencia y constructoresSobrecarga de métodosPolimorfismoClases abstractasInterfacesModificador finalPaquetesDefinir un paqueteImportar un paquetePaquetes interesantes de JavaImportar elementos estáticosResumenCapítulo 7. Nuestras clases y las clases de JavaIntroducciónNuestras clases: más JavarkanoidLas clases base: Sprite, Movible y ColisionaLas clases principales: Ladrillos, Bola y PalaEl applet que une todo: la clase JavarkanoidClases de JavaEl paquete java.langEl paquete java.utilColeccionesGenericsMás de java.utilEl paquete java.appletY las que quedanResumenCapítulo 8. Todos cometemos errores: manejo de erroresen JavaIntroducción: los otros errores, las excepcionesLa jerarquía de las excepcionesCapturar excepciones: uso de try, catch y finallyIntenta y captura: try...catchLa pila de llamadasCapturar excepciones más genéricasY para terminar: finallyLanzar excepciones: throw y throwsLanzar excepciones con throwLanzar excepciones con throwsCrear nuestras propias excepcionesResumenCapítulo 9. InteractividadIntroducción:El modelo de delegación de eventosEventosFuentes de eventosReceptores de eventosUn gran evento: manejo de eventosSólo para tus ojos: mejoras de JavarkanoidResumenCapítulo 10. Otra manera de interactuar: entrada/salidaIntroducciónEl flujo de datos: streamStream predefinidosStream de byteStream de caracteresPara qué nos interesan los stream de bytesEjemplo de lectura y escritura en la consolaEjemplo de lectura y escritura en ficherosPara qué nos interesan los otros stream: stream de caracteresJavarkanoid y la entrada/salida: editor de nivelesEl paquete java.nioResumenCapítulo 11. Juntos, pero no revueltos: MutithreadingIntroducción: qué es la programación concurrenteCómo programar concurrentemente en Java: los threadsEstados del threadInicial: crear un threadEn ejecución: comenzar y ejecutarParado: esperarMuerto: difícilmente reanudableLa clase ThreadCrear nuestros propios threadsCrear una subclase de ThreadImplementar la interfaz RunnableResumenCapítulo 12. Mutithreading (parte II)Introducción: más hilosTodos juntos: sincronización.SynchronizedSincronizar métodosSincronizar bloques de códigoNo revueltos: comunicación entre threadsEl nuevo paquete concurrencyProgramador de tareasColeccionesVariables atómicasSincronizadoresExchangerCyclicBarrierLocksResumenCapítulo 13. Una interacción conocida:ventanas en Java con SwingIntroducción: ventanas en JavaQué es SwingCómo funciona Swing: jerarquía de contenedores y componentesPaso 1: los contenedores de nivel más altoLa clase JFrameLa clase JDialog y JOptionPaneLa clase JAppletPaso 2: contenedores intermediosLa clase JPanelGestor de ubicación de componentes:la interfaz LayoutManagerPaso 3: los componentesEl componente botónEl componente etiquetaLos eventos en los componentesCambiando el Look&Feel de las aplicacionesResumenCapítulo 14. Multimedia: imagen, Java2D y sonidoIntroducción: un mundo de imágenes y sonidosGráficos bidimensionales: Java2D¿Qué puede hacer Java2D?¿Cómo se hace?Figuras básicas: geometríasRellenar y contornearRender: procesar los gráficosTransformaciónComposiciónClipearPautas de renderTodo juntoMuchas más características en Java2D¿Se me escucha ahí fuera? Sonido en JavaReproducción de sonido en un appletReproducción de sonido en una aplicación standaloneFicheros instrumentalesFicheros de muestrasResumenCapítulo 15. Multimedia y realidad: Java3DAcercarnos a la realidad: Java3DInstalación de Java3DFilosofía de Java3D: diagramasEl diagrama baseLa correspondencia con las clases Java3DLa correspondencia con los programas Java3DEl universo simplificado: SimpleUniverseNuestro primer ejemplo: un cuadrado que se convierte en un cuboDibujo del diagrama de escenaCódigo y ejecución del programa¿Un applet, una aplicación standalone o las dos cosas a la vez?Muchas clases nuevasLas etapas del programa 3DCrear el objeto Canvas3DConstruir la rama de contenidoCompilar el diagrama de escenaCrear el objeto SimpleUniverse y adaptarloa nuestras necesidadesUnir los subdiagramas a LocaleMovernos en tres dimensiones: transformacionesRotacionesTransform3DTransformGroupVector3fEjemplo de rotación: cubo en perspectivaDibujo del diagrama de escenaCódigo y ejecución del programa¡Esto se mueve!: animacionesCapacidad de modificación en tiempo de ejecuciónAñadir animaciones a nuestras escenasEjemplo de animación: todo me da vueltasDibujo del diagrama de escenaCódigo y ejecución del programaMucho más con Java3DResumenCapítulo 16. Queremos más JavaPodríamos no parar de leer nuncaJDBC: acceso a bases de datosBases de datos relacionalesSQL: Structured Query LanguageJDBC: Java DataBase ConnectivityServletCiclo de vida de un servletClases y objetos necesarios para crear un servletHttpServletRequestHttpServletResponseResponder a las peticionesJSP : Java Server PagesEntre el HTML y los servletComponentes de una página JSPScriptletDeclaracionesExpresionesEtiquetasDirectivasJava Beans y Enterprise Java Beans(EJB)Los JavaBeanEstructura de un JavaBeanJavaBean y JSPEJB: Enterprise JavaBeanContenedores EJBClasificación de los EJBEstructura del EJBDesplegar un beanModelo Vista ControladorErrores frecuentes de las arquitecturasArquitectura de 2 capasArquitectura de 3 capasArquitectura de n capasArquitectura MVC(Modelo Vista Controlador)Java y XMLXMLPIDTDEspacio de nombresXSL y XSLTXPathEsquemas XMLXQL¿Cómo mezclamos todo esto con Java?SAXDOMJAXPJava y XML: la unión hace la fuerzaRMI: Remote Method InvocationEsquema de funcionamiento RMIClases necesarias para utilizar RMIPasos para crear una aplicación RMIJava IDL y CORBA: programación distribuidaLa arquitectura CORBAPasos para crear una aplicación con Java IDLJMS: Java Message Server¿Cuándo es interesante utilizar JMS?JMS junto a otras tecnologías de la plataforma J2EEJINISCSLJava Web Start y JNLPJNLPJava Web StartNos vemosCapítulo 17. J2ME: Nuestro pequeño gran hombreQué es y qué necesitamos para desarrollar en J2ME¿Qué es J2ME?Herramientas de desarrollo: WTKCiclo de vida de un midletCrear aplicaciones con componentes estándarNuestro primer midletLibrería estándar de formulariosFormItemCommandListTextBoxAlertTickerY poco másDesarrollo de juegos en J2MECanvasEl paquete javax.microedition.lcdui.gameSonido en el móvilLibrerías opcionalesResumenApéndicesTodo lo que necesitamos para crear en JavaDescarga de JavaInstalar JavaConfigurar JavaVariable PATH en Windows 2000 y NTVariable PATH en Windows XPVariable PATH en Windows ME¿Ha funcionado?Disfrutar JavaCrear en JavaUna gran ayuda para desarrollar en Java¿Qué es NetBeans?Descarga de NetBeansInstalar NetBeansUso de NetBeansCrear un proyectoEscribir el código JavaCompilar y ejecutar nuestro programa JavaConclusiones del uso de NetBeansProgramar en Java sin utilizar NetBeansMáquina virtual de JavaCambios en el lenguajeGenericsAutoboxingBucle for mejoradoEnumeraciones (Enumerations)Importar estáticos (Static Imports)VarargsNovedades en la máquina virtualClases compartidasRecolector de basura (Garbage Collector)Reloj de alta resoluciónLibrerías baseLenguaje y utilidadesRedInternacionalizaciónInstrumentaciónSerializaciónMonitorización y mantenimientoLibrerías de integraciónRMICORBA, JavaIDL y RMI-IIOPJNDIInterfaz de usuarioInternacionalizaciónSonidoJava2DAWTSwingConclusionesÍndice alfabético
Capítulo 2. Programar es un juego: sintaxis de JavaIntroducción: JavarkanoidAprender a gatear: colocación, comentarios, identificadores y palabras reservadasColocación del códigoComentariosIdentificadoresPalabras reservadasDescubrir los pies: tipos de datosTipos primitivos de datosEnterosRealesCaracteresBooleanosOtro tipo de datos: StringDar nuestro primer paso: literales y variablesLiteralesLiterales numéricosLiterales carácterLiterales cadenaVariablesDeclaración de variablesTipos de variablesInicialización de las variablesScope: alcance de una variable¿Qué hacemos con todo esto?Aprender a andar: operadoresOperador de asignaciónConversión de tipos automáticaCasting: conversión de tipos explícitaOperadores aritméticosOperadores relacionalesOperadores lógicosOperadores con objetosOperadores de cadenasOperadores de gestión de memoriaPrecedencia de operadoresResumen
Capítulo 3. Sintaxis de Java (parte II)Introducción: pasar de andar a correrCorrer y esquivar obstáculos: instrucciones de control de flujoInstrucciones condicionalesCondicional if...elseCondicional switchOperador condicionalBucles: instrucciones iterativasBucle forBucle for/inBucle whileBucle do...whileInstrucciones de control generalBreakContinuePractica: una bola rebotonaLa estructura del appletEvitar parpadeos: doble bufferCargar nuestras imágenes: MediaTrackerNuestro ejemploResumen
Capítulo 4. Arrays, queues, tipos enumeradosy autoboxing/unboxingIntroducciónArraysArrays unidimensionalesDeclarar el tipo base de los elementos del arrayReservar espacio de memoria para el arrayAñadir elementos en el arrayAcceder a los elementos del arrayArrays multidimensionalesObtener la longitud de un arrayEjemplo de uso de arrays: ladrillosOtras operaciones de los arraysQueuesCrear una queueAñadir elementos en la queueSacar elementos de la queueTipos enumeradosCrear y utilizar un tipo enumeradoCaracterísticas de los tipos enumeradosEjemplos de uso de tipos enumeradosAutoboxing y auto-unboxingAutoboxingAuto-unboxingUso de operadores en las clases wrapperUso de condicionales en las clases wrapperResumen
Capítulo 5. Hacer las cosas bien: ProgramaciónOrientada a ObjetosIntroducción: pensar orientado a objetosObjetos: todo es un objetoClases: todo objeto viene de una claseDefinición de una claseCabecera de la claseCuerpo de la claseTodo junto: instanciar clases para obtener objetosCrear una referencia al objetoInstanciar la claseA tener en cuenta con las referencias: aliasing y duplicación de objetos, paso de parámetros y operadores de comparaciónAliasing y duplicación de objetosPaso de referencias por parámetroOperadores de objetosEjemplo: la clase SpriteResumen
Capítulo 6. Programación Orientada a Objetos (parte II)Introducción: más POOHerenciaHerencia y accesibilidadHerencia y constructoresSobrecarga de métodosPolimorfismoClases abstractasInterfacesModificador finalPaquetesDefinir un paqueteImportar un paquetePaquetes interesantes de JavaImportar elementos estáticosResumen
Capítulo 7. Nuestras clases y las clases de JavaIntroducciónNuestras clases: más JavarkanoidLas clases base: Sprite, Movible y ColisionaLas clases principales: Ladrillos, Bola y PalaEl applet que une todo: la clase JavarkanoidClases de JavaEl paquete java.langEl paquete java.utilColeccionesGenericsMás de java.utilEl paquete java.appletY las que quedanResumen
Capítulo 8. Todos cometemos errores: manejo de erroresen JavaIntroducción: los otros errores, las excepcionesLa jerarquía de las excepcionesCapturar excepciones: uso de try, catch y finallyIntenta y captura: try...catchLa pila de llamadasCapturar excepciones más genéricasY para terminar: finallyLanzar excepciones: throw y throwsLanzar excepciones con throwLanzar excepciones con throwsCrear nuestras propias excepcionesResumen
Capítulo 9. InteractividadIntroducción:El modelo de delegación de eventosEventosFuentes de eventosReceptores de eventosUn gran evento: manejo de eventosSólo para tus ojos: mejoras de JavarkanoidResumen
Capítulo 10. Otra manera de interactuar: entrada/salidaIntroducciónEl flujo de datos: streamStream predefinidosStream de byteStream de caracteresPara qué nos interesan los stream de bytesEjemplo de lectura y escritura en la consolaEjemplo de lectura y escritura en ficherosPara qué nos interesan los otros stream: stream de caracteresJavarkanoid y la entrada/salida: editor de nivelesEl paquete java.nioResumen
Capítulo 11. Juntos, pero no revueltos: MutithreadingIntroducción: qué es la programación concurrenteCómo programar concurrentemente en Java: los threadsEstados del threadInicial: crear un threadEn ejecución: comenzar y ejecutarParado: esperarMuerto: difícilmente reanudableLa clase ThreadCrear nuestros propios threadsCrear una subclase de ThreadImplementar la interfaz RunnableResumen
Capítulo 12. Mutithreading (parte II)Introducción: más hilosTodos juntos: sincronización.SynchronizedSincronizar métodosSincronizar bloques de códigoNo revueltos: comunicación entre threadsEl nuevo paquete concurrencyProgramador de tareasColeccionesVariables atómicasSincronizadoresExchangerCyclicBarrierLocksResumen
Capítulo 13. Una interacción conocida:ventanas en Java con SwingIntroducción: ventanas en JavaQué es SwingCómo funciona Swing: jerarquía de contenedores y componentesPaso 1: los contenedores de nivel más altoLa clase JFrameLa clase JDialog y JOptionPaneLa clase JAppletPaso 2: contenedores intermediosLa clase JPanelGestor de ubicación de componentes:la interfaz LayoutManagerPaso 3: los componentesEl componente botónEl componente etiquetaLos eventos en los componentesCambiando el Look&Feel de las aplicacionesResumen
Capítulo 14. Multimedia: imagen, Java2D y sonidoIntroducción: un mundo de imágenes y sonidosGráficos bidimensionales: Java2D¿Qué puede hacer Java2D?¿Cómo se hace?Figuras básicas: geometríasRellenar y contornearRender: procesar los gráficosTransformaciónComposiciónClipearPautas de renderTodo juntoMuchas más características en Java2D¿Se me escucha ahí fuera? Sonido en JavaReproducción de sonido en un appletReproducción de sonido en una aplicación standaloneFicheros instrumentalesFicheros de muestrasResumen
Capítulo 15. Multimedia y realidad: Java3DAcercarnos a la realidad: Java3DInstalación de Java3DFilosofía de Java3D: diagramasEl diagrama baseLa correspondencia con las clases Java3DLa correspondencia con los programas Java3DEl universo simplificado: SimpleUniverseNuestro primer ejemplo: un cuadrado que se convierte en un cuboDibujo del diagrama de escenaCódigo y ejecución del programa¿Un applet, una aplicación standalone o las dos cosas a la vez?Muchas clases nuevasLas etapas del programa 3DCrear el objeto Canvas3DConstruir la rama de contenidoCompilar el diagrama de escenaCrear el objeto SimpleUniverse y adaptarloa nuestras necesidadesUnir los subdiagramas a LocaleMovernos en tres dimensiones: transformacionesRotacionesTransform3DTransformGroupVector3fEjemplo de rotación: cubo en perspectivaDibujo del diagrama de escenaCódigo y ejecución del programa¡Esto se mueve!: animacionesCapacidad de modificación en tiempo de ejecuciónAñadir animaciones a nuestras escenasEjemplo de animación: todo me da vueltasDibujo del diagrama de escenaCódigo y ejecución del programaMucho más con Java3DResumen
Capítulo 16. Queremos más JavaPodríamos no parar de leer nuncaJDBC: acceso a bases de datosBases de datos relacionalesSQL: Structured Query LanguageJDBC: Java DataBase ConnectivityServletCiclo de vida de un servletClases y objetos necesarios para crear un servletHttpServletRequestHttpServletResponseResponder a las peticionesJSP : Java Server PagesEntre el HTML y los servletComponentes de una página JSPScriptletDeclaracionesExpresionesEtiquetasDirectivasJava Beans y Enterprise Java Beans(EJB)Los JavaBeanEstructura de un JavaBeanJavaBean y JSPEJB: Enterprise JavaBeanContenedores EJBClasificación de los EJBEstructura del EJBDesplegar un beanModelo Vista ControladorErrores frecuentes de las arquitecturasArquitectura de 2 capasArquitectura de 3 capasArquitectura de n capasArquitectura MVC(Modelo Vista Controlador)Java y XMLXMLPIDTDEspacio de nombresXSL y XSLTXPathEsquemas XMLXQL¿Cómo mezclamos todo esto con Java?SAXDOMJAXPJava y XML: la unión hace la fuerzaRMI: Remote Method InvocationEsquema de funcionamiento RMIClases necesarias para utilizar RMIPasos para crear una aplicación RMIJava IDL y CORBA: programación distribuidaLa arquitectura CORBAPasos para crear una aplicación con Java IDLJMS: Java Message Server¿Cuándo es interesante utilizar JMS?JMS junto a otras tecnologías de la plataforma J2EEJINISCSLJava Web Start y JNLPJNLPJava Web StartNos vemos
Capítulo 17. J2ME: Nuestro pequeño gran hombreQué es y qué necesitamos para desarrollar en J2ME¿Qué es J2ME?Herramientas de desarrollo: WTKCiclo de vida de un midletCrear aplicaciones con componentes estándarNuestro primer midletLibrería estándar de formulariosFormItemCommandListTextBoxAlertTickerY poco másDesarrollo de juegos en J2MECanvasEl paquete javax.microedition.lcdui.gameSonido en el móvilLibrerías opcionalesResumen
ApéndicesTodo lo que necesitamos para crear en JavaDescarga de JavaInstalar JavaConfigurar JavaVariable PATH en Windows 2000 y NTVariable PATH en Windows XPVariable PATH en Windows ME¿Ha funcionado?Disfrutar JavaCrear en JavaUna gran ayuda para desarrollar en Java¿Qué es NetBeans?Descarga de NetBeansInstalar NetBeansUso de NetBeansCrear un proyectoEscribir el código JavaCompilar y ejecutar nuestro programa JavaConclusiones del uso de NetBeansProgramar en Java sin utilizar NetBeansMáquina virtual de JavaCambios en el lenguajeGenericsAutoboxingBucle for mejoradoEnumeraciones (Enumerations)Importar estáticos (Static Imports)VarargsNovedades en la máquina virtualClases compartidasRecolector de basura (Garbage Collector)Reloj de alta resoluciónLibrerías baseLenguaje y utilidadesRedInternacionalizaciónInstrumentaciónSerializaciónMonitorización y mantenimientoLibrerías de integraciónRMICORBA, JavaIDL y RMI-IIOPJNDIInterfaz de usuarioInternacionalizaciónSonidoJava2DAWTSwingConclusiones
Índice alfabético
Otros clientes que compraron Java 2 v5.0, también compraron:
Otros libros de Programación. Otros:
*Para península. Tiempo estimado para días laborables
**Oferta válida solo para envíos a España. Resto de destinos se aplicará un descuento de 4,95 €