Cómo usar este libro
1. El lenguaje Java
¿Qué es el Java?
Historia del lenguaje Java
El papel del lenguaje Java en la informática del año 2017
El Java 9
La documentación del Java 2
La instalación del entorno de desarrollo NetBeans
Mi primera aplicación en el lenguaje Java
La compilación sin entorno de desarrollo
Novedades en la versión 9 de Java
Recomendaciones generales para la realización de una buena programación
Resumen
2. Los primeros pasos en Java: el JShell
La herramienta JShell
Las variables en el lenguaje Java
Las variables primitivas en Java
Los datos simples ordinales o enteros en el lenguaje Java
Los datos simples reales en el lenguaje Java
Las variables boolean y char
Nombres de las variables
Literales numéricos
Ámbito de existencia de las variables
La clase String
La clase StringBuilder
Resumen
3. Expresiones y operadores en Java
Los operadores y las expresiones en el lenguaje Java
Operadores aritméticos
Operadores de relación
Operadores lógicos
Operadores de asignación
Operador instanceof
Prioridad en la ejecución de los operadores
La documentación interna de un programa
Clases envolventes de las variables numéricas primitivas
Clases BigInteger y BigDecimal
Laboratorio de Java
Resumen
4. Estructuras de control de flujo
Introducción al control de flujo en un programa de Java
Estructuras de control de flujo
Ejecución condicionada de una sentencia: if ... else
Control de flujo en bloques alternativos
La estructura de control de flujo if...else if
La estructura de control de flujo switch ... case
Los bloques repetitivos
Bloques repetitivos con contador; la estructura for
Recorrido de colecciones con la estructura for
Bloques repetitivos condicionados con la evaluación de la condición al final del bloque: la sentencia do...while
Bloques repetitivos condicionados con la evaluación de la condición al inicio del bloque: la estructura while
Sentencias break y continue
Laboratorio de Java; el año bisiesto
Enunciado
Laboratorio de Java; números pares menores de 10
Enunciado
Laboratorio de Java; números primos menores de 25
Enunciado
Laboratorio de Java; números enteros entre 100 y 150 divisibles entre 3 y 7
Enunciado
Laboratorio de Java; tripletas de Pitágoras
Enunciado
Resumen
5. Entradas y salidas a la consola
Escritura de datos en la consola del sistema
Lectura de los argumentos de la línea de comandos del sistema
Lectura de datos a través de la consola del sistema
Sistema de lectura de datos en la consola del sistema; clases InputStreamReader y BufferedReader
Sistema de lectura de datos en la consola del sistema; clase Scanner
Lectura de datos a través de la consola del sistema con validación
Sistema de lectura de datos en la consola del sistema; clase System.In
Laboratorio de Java; lados de un triángulo
Enunciado
Laboratorio de Java; calculadora elemental
Enunciado
Resumen
6. Colecciones de longitud fija
Concepto de array
Declaración de arrays
Definición o construcción de arrays
Ejemplos de uso de arrays
Utilidades de la clase Arrays
Laboratorio de Java; array de números enteros
Enunciado
Laboratorio de Java; array de números enteros segundo
Enunciado
Laboratorio de Java; suma de matrices
Enunciado
Laboratorio de Java; producto escalar de un vector
Enunciado
Laboratorio de Java; multiplicación de matrices
Enunciado
Resumen
7. Clases y objetos
Los conceptos de clase y objeto
El operador this
Paquetes y clases
Clases de uso frecuente de Java
Tipos de clases
Clases internas
Clases anidadas estáticas
Clases internas o clases miembro
Clases internas locales
Clase abstracta
Estructuras de datos enum
Laboratorio de Java; diseño de una clase
Enunciado
Laboratorio de Java; diseño de una clase, segundo
Enunciado
Resumen
8. Métodos en Java
Los métodos y los atributos
Objetos como almacén de datos
Tipos de métodos según el retorno que genera
Paso de argumentos a métodos
Tipos de acceso a métodos y atributos
Métodos estáticos de la clase principal
Igualdad de referencia de objetos
Recursividad de los métodos
Laboratorio de Java; clases y métodos
Enunciado
Laboratorio de Java; métodos de verdadero falso
Enunciado
Laboratorio de Java; clase Vehículos
Enunciado
Laboratorio de Java; la clase Alimento
Enunciado
Resumen
9. Excepciones
Concepto de excepción
Captura de las excepciones
Cómo se procesan excepciones con try catch
Generación de excepciones; sentencia throw
Excepciones personalizadas
Laboratorio de Java; repaso de capítulos anteriores
Enunciado
Laboratorio de Java; excepciones
Enunciado
Laboratorio de Java; excepciones 2
Enunciado
Laboratorio de Java; excepciones personalizadas
Enunciado
Resumen
10. Entrada y salida a ficheros
Introducción a la escritura y lectura de ficheros
La gestión de ficheros y directorios; la clase File
Las clases Reader y Writer
Las clases InputStream y OutputStream
Ficheros de acceso directo o aleatorio
Serialización
Lectura de ficheros con los métodos de la clase Scanner
Laboratorio de Java; gestión de libros
Enunciado
Laboratorio de Java; análisis de un fichero de texto
Enunciado
Laboratorio de Java; análisis de un directorio
Enunciado
Resumen
11. Procesos e hilos
Concepto de proceso e hilo de ejecución
La clase Thread
Sincronización de hilos
Métodos wait y notify de la clase Object
Prioridades de ejecución de hilos
Ejecución de un proceso externo
Laboratorio de Java; el cronómetro
Enunciado
Resumen
12. Las herencias
Concepto de herencia
Métodos sobrecargados
Concepto de interface
Definición de una interface
Instrumentación de una interface
Interface simple
Interface complejo
Métodos por defecto en las interfaces
Expresiones lambda
Programación funcional en Java
Resumen
13. Genéricos y colecciones
El paquete java.util
Tipos genéricos
Listas y colecciones del paquete java.util
Clases de tipo interface para crear listas y colecciones del paquete java.util
La clase ArrayList
Almacén para objetos de distinto tipo
La clase Stream
La clase Stack
La clase HashSet
La clase LinkedList
La clase TreeMap
La clase Queue
Colecciones de desarrollo propio
Resumen
14. Gestión de fechas, encriptación y ficheros XML
La clase LocalDate
La clase LocalTime
La clase LocalDateTime
La clase DateTimeFormatter
La clase Duration e Instant
La clase Date y GregorianCalendar
La clase DecimalFormat
La clase Math
La clase Random
La clase Cipher
La Clase StringTokenizer
Validar ficheros XML
Obtener la dirección MAC de un dispositivo de red
Resumen
15. Arquitectura distribuida y métodos remotos RMI
Arquitectura distribuida
Aplicaciones con RMI
Aplicación servidora
Aplicación cliente
Resumen
16. Arquitectura distribuida a través de sockets
Concepto de socket
Comunicaciones en Internet
La librería java.net
Investigación de una dirección IP
Creación de una conexión a través de un socket
Enviar y recibir datos a través de un socket
Socket escuchador de conexiones
Conexión con una dirección de Internet URL
Resumen
17. Introducción a la interfaz gráfica
Introducción a la construcción de una interfaz gráfica
Una ventana elemental
Diseño de la interfaz gráfica del usuario
Métodos de la clase Component
Resumen
18. Interfaz gráfica con Swing
Componentes Swing de uso frecuente
Captura de eventos sobre componentes
Eventos de uso frecuente
Eventos sobre botones
Eventos del ratón
Eventos del menú
Eventos del teclado
Resumen
19. Ejemplos de interfaz gráfica con swing
Aplicación típica con agrupación de componentes
Aplicación con separador entre dos paneles
Aplicación con diálogo de selección de fichero
Aplicación con explorador de Internet
Laboratorio de Java; validar ficheros XML
Enunciado
Resumen
20. Ejemplos de interfaz gráfica con swing (segunda colección)
Aplicación con ventanas de mensajes
Visualizador de imágenes
Transformación de coordenadas en componentes
Laboratorio de Java
Enunciado
Resumen
21. Ejemplos de interfaz gráfica con swing (tercera colección
Casillas de verificación
Listas desplegables y cuadros de listas
Las clases Canvas y Graphics
Distribución de componentes por diseños predefinidos
Resumen
22. Interfaz gráfica con JavaFX
Lenguaje JavaFX
Patrón de diseño Modelo-Vista-Controlador con JavaFX
Construyendo la primera aplicación JavaFX
Aplicaciones de demostración de JavaFX
Resumen
23. Acceso a bases de datos
Acceso a bases de datos
Ejemplo de acceso a la base de datos Access
Acceder a la base de datos Oracle
Formulario para mostrar una consulta SQL
Resumen
24. Los servlets
Concepto de servlet
Un servlet simple
Servlets como respaldo de un formulario HTML
Resumen
25. Las páginas JSP
Concepto de página JSP
Uso de páginas JSP en respuesta a peticiones de formularios HTML
Consulta a una base de datos desde una página JSP
Resumen
26. Componentes JavaBeans
Los componentes JavaBeans
Primer ejemplo de un JavaBean
Uso del componente Semáforo en una aplicación
Segundo ejemplo de un JavaBean
Componente JavaBean con secuenciador de tareas TimerTask
Resumen
Índice alfabético
Java es un lenguaje de programación orientado a objetos multiplataforma en constante evolución. La versión 9 introduce la herramienta JShell con la que es posible ejecutar bloques de código Java sin tener que incluir estos en la estructura de un programa formal con clases, por lo que puede ser usada para el aprendizaje del lenguaje. También se puede usar para el desarrollo de determinados algoritmos en los que es importante la simulación instantánea de los resultados. En esta versión se continúa con la programación funcional, las expresiones lambda y el nuevo diseño de interfaz de usuario con JavaFX que permite la separación entre el interfaz del usuario y la lógica de la aplicación.
Este manual de Java 9 es ideal para el aprendizaje de la programación. Puede usarlo como complemento para el estudio de las asignaturas relacionadas con fundamentos de programación, estructura de datos, base de datos etc. No es necesario tener conocimientos previos de programación para entender este manual, se inicia el aprendizaje desde cero.
Incluye, entre otros temas, la gestión de ficheros, listas, acceso remoto a bases de datos, sockets, encriptación, interfaz gráfica del usuario, servlets, JSP y JavaBeans. Además, el lector dispone de más de 200 ejemplos cuyo código podrá descargar de la web de Anaya Multimedia. Las clases y los métodos usados en los ejemplos están explicados en el texto y las tablas del libro.