Agradecimientos
Sobre el autor
Sobre el editor técnico
Introducción
La evolución de Java
Organización del libro
Convenciones
No se necesita experiencia de programación
Requisitos de software
Código fuente
1. Conceptos de Java
Los orígenes de Java
La relación de Java con C y C++
La relación de Java con C#
La contribución de Java a Internet
Applet de Java
Seguridad
Portabilidad
La magia de Java: el código de bytes
Términos principales de Java
Programación orientada a objetos
Encapsulación
Polimorfismo
Herencia
Obtener el kit de desarrollo de Java
El primer programa
Introducir el programa
Compilar el programa
El primer programa de ejemplo línea por línea
Solucionar errores sintácticos
Otro sencillo programa
Otro tipo de datos
Dos instrucciones de control
La instrucción if
El bucle for
Crear bloques de código
Puntos y coma, y ubicación
Técnicas de sangrado
Palabras clave de Java
Identificadores en Java
Las bibliotecas de clases de Java
Evaluación de conocimientos
2. Tipos de datos y operadores
Importancia de los tipos de datos
Tipos primitivos de Java
Enteros
Tipos de coma flotante
Caracteres
El tipo boolean
Literales
Literales hexadecimales, octales y binarios
Secuencias de escape de caracteres
Literales de cadena
Variables
Inicializar una variable
Inicialización dinámica
Ámbito y duración de variables
Operadores
Operadores aritméticos
Incremento y decremento
Operadores relacionales y lógicos
Operadores lógicos de cortocircuito
El operador de asignación
Asignaciones abreviadas
Conversión de tipos en asignaciones
Convertir tipos incompatibles
Precedencia de operadores
Expresiones
Conversión de tipos en expresiones
Espaciado y paréntesis
Evaluación de conocimientos
3. Instrucciones de control
Introducir caracteres desde el teclado
La instrucción if
Instrucciones if anidadas
La cadena if-else-if
La instrucción switch
Instrucciones switch anidadas
El bucle for
Variantes del bucle for
Componentes vacíos
El bucle infinito
Bucles sin cuerpo
Declarar variables de control de bucle dentro del bucle for
El bucle for mejorado
El bucle while
El bucle do-while
Utilizar break para salir de un bucle
Usar break como goto
Utilizar continue
Bucles anidados
Evaluación de conocimientos
4. Clases, objetos y métodos
Clases: aspectos esenciales
Formato general de una clase
Definir una clase
Crear objetos
Variables de referencia y asignación
Métodos
Añadir un método a la clase Vehicle
Devolver valores desde un método
Devolver un valor
Utilizar parámetros
Añadir un método con parámetros a Vehicle
Constructores
Constructores con parámetros
Añadir un constructor a la clase Vehicle
Revisión del operador new
Recolectar elementos sin usar y finalizadores
El método finalize()
La palabra clave this
Evaluación de conocimientos
5. Otros tipos de datos y operadores
Matrices
Matrices de una dimensión
Matrices multidimensionales
Matrices de dos dimensiones
Matrices irregulares
Matrices de tres o más dimensiones
Inicializar matrices multidimensionales
Sintaxis alternativa para declarar matrices
Asignar referencias de matriz
Usar el miembro length
El bucle for de estilo for-each
Iterar por matrices multidimensionales
Aplicar el bucle for mejorado
Cadenas
Crear cadenas
Trabajar con cadenas
Matrices de cadenas
Las cadenas son inmutables
Utilizar una cadena para controlar una instrucción switch
Utilizar argumentos de línea de comandos
Los operadores de orden de bits
Los operadores AND, OR, XOR y NOT de orden de bits
Los operadores de desplazamiento
Asignaciones abreviadas de orden de bits
El operador ?
Evaluación de conocimientos
6. Análisis detallado de métodos y clases
Controlar el acceso a los miembros de una clase
Modificadores de acceso de Java
Pasar objetos a métodos
Cómo pasar argumentos
Devolver objetos
Sobrecargar métodos
Sobrecargar constructores
Recursión
Comprender static
Bloques estáticos
Clases anidadas e internas
Argumentos de longitud variable: varargs
Fundamentos de varargs
Sobrecargar métodos varargs
Varargs y la ambigüedad
Evaluación de conocimientos
7. Herencia
Aspectos básicos de la herencia
Acceso a miembros y herencia
Constructores y herencia
Utilizar super para invocar constructores de superclase
Utilizar super para acceder a miembros de una superclase
Crear una jerarquía multinivel
Cuándo invocar constructores
Referencias de superclase y objetos de subclase
Reemplazar métodos
Los métodos reemplazados admiten polimorfismo
Por qué reemplazar métodos
Aplicar reemplazo de métodos a TwoDShape
Utilizar clases abstractas
Utilizar final
Evitar reemplazos con final
Evitar la herencia con final
Utilizar final con miembros de datos
La clase Object
Evaluación de conocimientos
8. Paquetes e interfaces
Paquetes
Definir un paquete
Buscar paquetes y CLASSPATH
Breve ejemplo de paquete
Paquetes y acceso a miembros
Ejemplo de acceso a paquetes
Miembros protegidos
Importar paquetes
La biblioteca de clases de Java se incluye en paquetes
Interfaces
Implementar interfaces
Utilizar referencias de interfaz
Variables en interfaces
Ampliar interfaces
Evaluación de conocimientos
9. Controlar excepciones
La jerarquía de excepciones
Fundamentos del control de excepciones
Utilizar try y catch
Ejemplo de excepción
Consecuencias de una excepción sin capturar
Excepciones para controlar errores con elegancia
Utilizar varias instrucciones catch
Capturar excepciones de subclases
Anidar bloques try
Generar una excepción
Volver a generar una excepción
Análisis de Throwable
Utilizar finally
Utilizar throws
Nuevas funciones de excepciones de JDK 7
Excepciones integradas de Java
Crear subclases de excepción
Evaluación de conocimientos
10. Utilizar E/S
E/S de Java se basa en flujos
Flujos de bytes y de caracteres
Clases de flujo de bytes
Clases de flujo de caracteres
Flujos predefinidos
Utilizar los flujos de bytes
Leer entradas de consola
Escribir salida en la consola
Leer y escribir archivos con flujos de bytes
Entradas desde un archivo
Escribir en un archivo
Cerrar automáticamente un archivo
Leer y escribir datos binarios
Archivos de acceso aleatorio
Utilizarlos flujos basados en caracteres de Java
Entrada de consola con flujos de caracteres
Salida de consola con flujos de caracteres
E/S de archivos con flujos de caracteres
Utilizar FileWriter
Utilizar FileReader
Utilizar envoltorios de tipos de Java para convertir cadenas numéricas
Evaluación de conocimientos
11. Programación de subprocesamiento múltiple
Aspectos básicos del subprocesamiento múltiple
La clase Thread y la interfaz Runnable
Java es uno de los lenguajes que ha revolucionado la esencia de la programación por su gran impacto en el desarrollo Web. Para convertirse en programador Web profesional o desarrollador de Android, necesita el dominio de Java. En definitiva, la programación con Java es la base de gran parte de la informática moderna actual.
Herbert Schildt le presenta esta obra a través de un enfoque paso a paso repleto de ejemplos, evaluaciones y proyectos. Comenzando con los aspectos básicos, como la forma de compilar y ejecutar un programa Java, para después analizar las palabras clave, sintaxis y construcciones que constituyen el núcleo del lenguaje Java. También se describen algunas de las funciones más avanzadas de Java, como la programación de subprocesamiento múltiple y los genéricos. La obra concluye con una introducción a Swing. Al finalizar el libro, dispondrá de una sólida base para programar con Java.
Diseñe, compile y ejecute programas de Java con ayuda de este curso práctico.