|
La tecnología Java está presente en nuestra actividad cotidiana, al navegar por Internet, al utilizar nuestros teléfonos móviles y hasta cuando vemos la televisión. Java es un lenguaje en crecimiento continuo, potente, robusto, gratuito y sencillo; por eso es ideal tanto para los que se inician en la programación de lenguajes de alto nivel como para los programadores más expertos.
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.
ÍNDICE
Cómo usar este libro
Y este libro... ¿para quién es?
Una ayuda más: información de soporte
Convenios utilizados en este libro
Introducción. Directo al grano
Java nos rodea
¿Qué es Java?
¿Qué es Java 5.0?
¿Por qué hemos elegido Java?
¿Qué ofrece Java?
Simple
Portable
Interpretado
Robusto
Distribuido
Con arquitectura independiente
La API de Java
La máquina virtual de Java (Java Virtual Machine)
Seguro
Orientado a objetos
Dinámico
Multihilo (multithread) y la programación concurrente
Conclusión
Novedades de Java 5.0
Java vs....
Java vs. C y C++
Java vs. C#
Java vs. Javascript
Hemos acertado
Capítulo 1. Lo que ves es lo que hay: applets
Introducción: What you see is what you get
Los applets e Internet
Hola World Wide Web. Nuestro primer applet.
El código Java
La página HTML
Compilar el archivo Java
Visualizar el applet
Creación y ejecución de un applet con NetBeans
Los applets y HTML
La etiqueta <applet>
La etiqueta object
¿Qué ocurre dentro de un applet? El ciclo de vida de un applet
Profundizando en los applets: un ejemplo más completo
Creación de gráficos
Ejemplo del ciclo de vida
Animaciones en los applets
Resumen
Capítulo 2. Programar es un juego: sintaxis de Java
Introducción: Javarkanoid
Aprender a gatear: colocación, comentarios, identificadores y palabras reservadas
Colocación del código
Comentarios
Identificadores
Palabras reservadas
Descubrir los pies: tipos de datos
Tipos primitivos de datos
Enteros
Reales
Caracteres
Booleanos
Otro tipo de datos: String
Dar nuestro primer paso: literales y variables
Literales
Literales numéricos
Literales carácter
Literales cadena
Variables
Declaración de variables
Tipos de variables
Inicialización de las variables
Scope: alcance de una variable
¿Qué hacemos con todo esto?
Aprender a andar: operadores
Operador de asignación
Conversión de tipos automática
Casting: conversión de tipos explícita
Operadores aritméticos
Operadores relacionales
Operadores lógicos
Operadores con objetos
Operadores de cadenas
Operadores de gestión de memoria
Precedencia de operadores
Resumen
Capítulo 3. Sintaxis de Java (parte II)
Introducción: pasar de andar a correr
Correr y esquivar obstáculos: instrucciones de control de flujo
Instrucciones condicionales
Condicional if...else
Condicional switch
Operador condicional
Bucles: instrucciones iterativas
Bucle for
Bucle for/in
Bucle while
Bucle do...while
Instrucciones de control general
Break
Continue
Practica: una bola rebotona
La estructura del applet
Evitar parpadeos: doble buffer
Cargar nuestras imágenes: MediaTracker
Nuestro ejemplo
Resumen
Capítulo 4. Arrays, queues, tipos enumeradosy autoboxing/unboxing
Introducción
Arrays
Arrays unidimensionales
Declarar el tipo base de los elementos del array
Reservar espacio de memoria para el array
Añadir elementos en el array
Acceder a los elementos del array
Arrays multidimensionales
Obtener la longitud de un array
Ejemplo de uso de arrays: ladrillos
Otras operaciones de los arrays
Queues
Crear una queue
Añadir elementos en la queue
Sacar elementos de la queue
Tipos enumerados
Crear y utilizar un tipo enumerado
Características de los tipos enumerados
Ejemplos de uso de tipos enumerados
Autoboxing y auto-unboxing
Autoboxing
Auto-unboxing
Uso de operadores en las clases wrapper
Uso de condicionales en las clases wrapper
Resumen
Capítulo 5. Hacer las cosas bien: ProgramaciónOrientada a Objetos
Introducción: pensar orientado a objetos
Objetos: todo es un objeto
Clases: todo objeto viene de una clase
Definición de una clase
Cabecera de la clase
Cuerpo de la clase
Todo junto: instanciar clases para obtener objetos
Crear una referencia al objeto
Instanciar la clase
A tener en cuenta con las referencias: aliasing y duplicación de objetos, paso de parámetros y operadores de comparación
Aliasing y duplicación de objetos
Paso de referencias por parámetro
Operadores de objetos
Ejemplo: la clase Sprite
Resumen
Capítulo 6. Programación Orientada a Objetos (parte II)
Introducción: más POO
Herencia
Herencia y accesibilidad
Herencia y constructores
Sobrecarga de métodos
Polimorfismo
Clases abstractas
Interfaces
Modificador final
Paquetes
Definir un paquete
Importar un paquete
Paquetes interesantes de Java
Importar elementos estáticos
Resumen
Capítulo 7. Nuestras clases y las clases de Java
Introducción
Nuestras clases: más Javarkanoid
Las clases base: Sprite, Movible y Colisiona
Las clases principales: Ladrillos, Bola y Pala
El applet que une todo: la clase Javarkanoid
Clases de Java
El paquete java.lang
El paquete java.util
Colecciones
Generics
Más de java.util
El paquete java.applet
Y las que quedan...
Resumen
Capítulo 8. Todos cometemos errores: manejo de erroresen Java
Introducción: los otros errores, las excepciones
La jerarquía de las excepciones
Capturar excepciones: uso de try, catch y finally
Intenta y captura: try...catch
La pila de llamadas
Capturar excepciones más genéricas
Y para terminar: finally
Lanzar excepciones: throw y throws
Lanzar excepciones con throw
Lanzar excepciones con throws
Crear nuestras propias excepciones
Resumen
Capítulo 9. Interactividad
Introducción:
El modelo de delegación de eventos
Eventos
Fuentes de eventos
Receptores de eventos
Un gran evento: manejo de eventos
Sólo para tus ojos: mejoras de Javarkanoid
Resumen
Capítulo 10. Otra manera de interactuar: entrada/salida
Introducción
El flujo de datos: stream
Stream predefinidos
Stream de byte
Stream de caracteres
Para qué nos interesan los stream de bytes
Ejemplo de lectura y escritura en la consola
Ejemplo de lectura y escritura en ficheros
Para qué nos interesan los otros stream: stream de caracteres
Javarkanoid y la entrada/salida: editor de niveles
El paquete java.nio
Resumen
Capítulo 11. Juntos, pero no revueltos: Mutithreading
Introducción: qué es la programación concurrente
Cómo programar concurrentemente en Java: los threads
Estados del thread
Inicial: crear un thread
En ejecución: comenzar y ejecutar
Parado: esperar
Muerto: difícilmente reanudable
La clase Thread
Crear nuestros propios threads
Crear una subclase de Thread
Implementar la interfaz Runnable
Resumen
Capítulo 12. Mutithreading (parte II)
Introducción: más hilos
Todos juntos: sincronización.
Synchronized
Sincronizar métodos
Sincronizar bloques de código
No revueltos: comunicación entre threads
El nuevo paquete concurrency
Programador de tareas
Colecciones
Variables atómicas
Sincronizadores
Exchanger
CyclicBarrier
Locks
Resumen
Capítulo 13. Una interacción conocida:ventanas en Java con Swing
Introducción: ventanas en Java
Qué es Swing
Cómo funciona Swing: jerarquía de contenedores y componentes
Paso 1: los contenedores de nivel más alto
La clase JFrame
La clase JDialog y JOptionPane
La clase JApplet
Paso 2: contenedores intermedios
La clase JPanel
Gestor de ubicación de componentes:la interfaz LayoutManager
Paso 3: los componentes
El componente botón
El componente etiqueta
Los eventos en los componentes
Cambiando el Look&Feel de las aplicaciones
Resumen
Capítulo 14. Multimedia: imagen, Java2D y sonido
Introducción: un mundo de imágenes y sonidos
Gráficos bidimensionales: Java2D
¿Qué puede hacer Java2D?
¿Cómo se hace?
Figuras básicas: geometrías
Rellenar y contornear
Render: procesar los gráficos
Transformación
Composición
Clipear
Pautas de render
Todo junto
Muchas más características en Java2D
¿Se me escucha ahí fuera? Sonido en Java
Reproducción de sonido en un applet
Reproducción de sonido en una aplicación standalone
Ficheros instrumentales
Ficheros de muestras
Resumen
Capítulo 15. Multimedia y realidad: Java3D
Acercarnos a la realidad: Java3D
Instalación de Java3D
Filosofía de Java3D: diagramas
El diagrama base
La correspondencia con las clases Java3D
La correspondencia con los programas Java3D
El universo simplificado: SimpleUniverse
Nuestro primer ejemplo: un cuadrado que se convierte en un cubo
Dibujo del diagrama de escena
Código y ejecución del programa
¿Un applet, una aplicación standalone o las dos cosas a la vez?
Muchas clases nuevas
Las etapas del programa 3D
Crear el objeto Canvas3D
Construir la rama de contenido
Compilar el diagrama de escena
Crear el objeto SimpleUniverse y adaptarloa nuestras necesidades
Unir los subdiagramas a Locale
Movernos en tres dimensiones: transformaciones
Rotaciones
Transform3D
TransformGroup
Vector3f
Ejemplo de rotación: cubo en perspectiva
Dibujo del diagrama de escena
Código y ejecución del programa
¡Esto se mueve!: animaciones
Capacidad de modificación en tiempo de ejecución
Añadir animaciones a nuestras escenas
Ejemplo de animación: todo me da vueltas
Dibujo del diagrama de escena
Código y ejecución del programa
Mucho más con Java3D
Resumen
Capítulo 16. Queremos más Java
Podríamos no parar de leer nunca
JDBC: acceso a bases de datos
Bases de datos relacionales
SQL: Structured Query Language
JDBC: Java DataBase Connectivity
Servlet
Ciclo de vida de un servlet
Clases y objetos necesarios para crear un servlet
HttpServletRequest
HttpServletResponse
Responder a las peticiones
JSP : Java Server Pages
Entre el HTML y los servlet
Componentes de una página JSP
Scriptlet
Declaraciones
Expresiones
Etiquetas
Directivas
Java Beans y Enterprise Java Beans(EJB)
Los JavaBean
Estructura de un JavaBean
JavaBean y JSP
EJB: Enterprise JavaBean
Contenedores EJB
Clasificación de los EJB
Estructura del EJB
Desplegar un bean
Modelo Vista Controlador
Errores frecuentes de las arquitecturas
Arquitectura de 2 capas
Arquitectura de 3 capas
Arquitectura de n capas
Arquitectura MVC(Modelo Vista Controlador)
Java y XML
XML
PI
DTD
Espacio de nombres
XSL y XSLT
XPath
Esquemas XML
XQL
¿Cómo mezclamos todo esto con Java?
SAX
DOM
JAXP
Java y XML: la unión hace la fuerza
RMI: Remote Method Invocation
Esquema de funcionamiento RMI
Clases necesarias para utilizar RMI
Pasos para crear una aplicación RMI
Java IDL y CORBA: programación distribuida
La arquitectura CORBA
Pasos para crear una aplicación con Java IDL
JMS: Java Message Server
¿Cuándo es interesante utilizar JMS?
JMS junto a otras tecnologías de la plataforma J2EE
JINI
SCSL
Java Web Start y JNLP
JNLP
Java Web Start
Nos vemos
Capítulo 17. J2ME: Nuestro pequeño gran hombre
Qué es y qué necesitamos para desarrollar en J2ME
¿Qué es J2ME?
Herramientas de desarrollo: WTK
Ciclo de vida de un midlet
Crear aplicaciones con componentes estándar
Nuestro primer midlet
Librería estándar de formularios
Form
Item
Command
List
TextBox
Alert
Ticker
Y poco más
Desarrollo de juegos en J2ME
Canvas
El paquete javax.microedition.lcdui.game
Sonido en el móvil
Librerías opcionales
Resumen
Apéndices
Todo lo que necesitamos para crear en Java
Descarga de Java
Instalar Java
Configurar Java
Variable PATH en Windows 2000 y NT
Variable PATH en Windows XP
Variable PATH en Windows ME
¿Ha funcionado?
Disfrutar Java
Crear en Java
Una gran ayuda para desarrollar en Java
¿Qué es NetBeans?
Descarga de NetBeans
Instalar NetBeans
Uso de NetBeans
Crear un proyecto
Escribir el código Java
Compilar y ejecutar nuestro programa Java
Conclusiones del uso de NetBeans
Programar en Java sin utilizar NetBeans
Máquina virtual de Java
Cambios en el lenguaje
Generics
Autoboxing
Bucle for mejorado
Enumeraciones (Enumerations)
Importar estáticos (Static Imports)
Varargs
Novedades en la máquina virtual
Clases compartidas
Recolector de basura (Garbage Collector)
Reloj de alta resolución
Librerías base
Lenguaje y utilidades
Red
Internacionalización
Instrumentación
Serialización
Monitorización y mantenimiento
Librerías de integración
RMI
CORBA, JavaIDL y RMI-IIOP
JNDI
Interfaz de usuario
Internacionalización
Sonido
Java2D
AWT
Swing
Conclusiones
Índice alfabético
|