Descripción
Libro digital para leer en línea o en app móvil
Descripción:
Bienvenido a Programación en Java 6. Este libro se ha diseñado para un primer curso de Programación de Computadoras (Fundamentos o Metodología de programación y/o Programación I) según los diferentes nombres de los currículos de los países iberoamericanos, incluyendo lógicamente España, Portugal y Brasil, y su con tinuación en Programación II o Programación orientada a objetos, como evolución natural del estudiante en carreras de Ingeniería de Sistemas Computacionales (Sistemas), Ingeniería Informática (los actuales grados de Ingeniería en España), otras Ingenierías como Telecomunicaciones, Industriales,
Electrónica, Geográfica, Mecánica, etcétera y también pensando en el tronco común de Ciencias Matemáticas, Físicas (carrera de los autores), etcétera. En el ámbito sajón o en las instituciones que sigan el currículo de Computer Science de ACM, el libro sigue las directrices de CS1 y CS2.
Tabla de contenidos:
Front Matter
PRÓLOGO
Una primera reflexión acerca de Java
¿Por qué hemos escrito este libro y a quién va dirigido?
¿Cómo usar este libro?
Página web del libro (OLC)
Organización del libro
AGRADECIMIENTOS
capítulo 1: Introducción a la programación
objetivos
introducción
1.1: Breve historia de las computadoras
1.1.1: Generación de computadoras
1.2: Organización y componentes de una computadora
1.2.1: Hardware
Figura 1.1
Figura 1.2
1.2.1.1: Unidad central de proceso y memoria
Dispositivos de entrada y salida
Dispositivos de almacenamiento
Dispositivos de comunicación
1.2.2: Software
1.3: Sistema operativo
Tabla 1.1: Sistemas operativos más utilizados en la educación, la informática personal y las empresas.
1.4: Lenguaje de computadora
1.4.1: Unidades de medida de memoria
Tabla 1.2: Unidades de medida de almacenamiento.
1.4.2: Representación de la información en las computadoras (códigos de caracteres)
Tabla 1.3: Ejemplos de los códigos de representación de la información.
1.5: Lenguajes de programación
1.5.1: Lenguaje ensamblador (assembly language)
Tabla 1.4: Ejemplos de instrucciones en lenguaje ensamblador convertidos a lenguaje máquina.
NOTA
1.5.2: Lenguaje de programación de alto nivel
1.5.3: El caso la máquina virtual Java (JVM)
NOTA
1.6: Internet y la web
1.7: La revolución Web 2.0 y cloud computing
1.7.1: Los social medio
1.7.2: Desarrollo de programas web
1.7.3: Cloud computing (computación en nube)
1.8: Web semántica y Web 3.0
1.9: Java como lenguaje y plataforma de programación
1.10: Historia de Java
Tabla 1.4: Evolución de Java.
1.10.1: Características de Java
NOTA
resumen
capítulo 2: Metodología de programación, creación y desarrollo de programas en Java
objetivos
introducción
2.1: Resolución de problemas con Java
¡ATENCIÓN!
2.1.1: Análisis del problema
2.1.2: Diseño del algoritmo
NOTA
NOTA
NOTA
EJEMPLO 2.1
NOTA
2.1.3: Codificación
2.1.4: Compilación-interpretación de un programa en Java
2.1.5: Verificación y depuración de un programa Java
2.1.6: Documentación y mantenimiento
Documentación interna
2.2: Creación de un programa en Java
Figura 2.1
Figura 2.2
NOTA
2.3: Metodología de la programación
2.3.1: Programación estructurada
2.3.2: Programación orientada a objetos
2.4: Metodología de desarrollo basada en clases
Análisis
Diseño
Implementación
Pruebas (testing)
Mantenimiento del software
2.5: Entornos de programación en Java
2.5.1: El kit de desarrollo Java: JDK 6
Tabla 2.1: Jerga de Java de Sun/Oracle.
NOTA
2.6: Entornos de desarrollo integrado (EDI)
NOTA
NOTA
2.6.1: Herramientas para desarrollo en Java
2.6.2: NetBeans
2.6.3: Eclipse
2.6.4: BlueJ
2.6.5: Otros entornos de desarrollo
2.7: Compilación sin entornos de desarrollo
resumen
conceptos clave
glosario
ejercicios
capítulo 3: Elementos básicos de Java
objetivos
introducción
3.1: Estructura general de un programa en Java
Figura 3.1
A TOMAR EN CUENTA
3.1.1: Declaración import
ADVERTENCIA
3.1.2: Declaración de clases
3.1.3: Método main()
NOTA
NOTA
3.1.4: Métodos definidos por el usuario
EJEMPLO 3.1
3.1.5: Comentarios
Comentarios con /* */
Comentarios en una línea con //
EJEMPLO 3.2
NOTA
3.2: Elementos de un programa en Java
3.2.1: Tokens (Elementos léxicos del programa)
3.2.1.1: Identificadores
NOTA
3.2.1.2: Palabras reservadas
NOTA
Tabla 3.1: Palabras reservadas de Java.
3.2.2: Signos de puntuación y separadores
3.2.3: Paquetes
Declaración import
3.3: Tipos de datos en Java
Tabla 3.2: Tipos de datos básicos de Java.
3.3.1: Enteros: int, byte, short, long
Tabla 3.3: Tipos de datos enteros.
3.3.1.1: Declaración de variables
Tabla 3.4: Constantes enteras en tres bases diferentes.
3.3.2: Tipos de coma flotante (float/double)
Tabla 3.5: Tipos de datos en coma flotante en Java.
3.3.3: Caracteres (char)
3.3.4: Boolean
3.3.5: El tipo de dato void
3.4: Tipo de datos enumeración (enum)
3.5: Conversión de tipos (cast)
3.6: Constantes
3.6.1: Constantes literales
Constantes enteras
Constantes reales
NaN e infinito
Constantes carácter
Aritmética con caracteres Java
Constantes cadena
3.6.2: Constantes declaradas final
RECOMENDACIÓN
sintaxis de final
3.7: Variables
3.7.1: Declaración
3.7.1.1: En una clase, como miembro de la clase
3.7.1.2: Al principio de un bloque de código
3.7.1.3: En el punto de utilización
EJEMPLO 3.3
3.7.2: Inicialización de variables
NOTA
3.8: Duración de una variable
3.8.1: Variables locales
3.8.2: Variables de clases
NOTA
3.8.3: Acceso a variables de clase fuera de la clase
A TOMAR EN CUENTA
NOTA
3.9: Entradas y salidas
3.9.1: Salida (System.out)
Tabla 3.6: Caracteres secuencias (códigos) de escape.
3.9.2: Salida con formato: printf
3.9.3: Entrada (system.in)
¡ATENCIÓN!
¡ATENCIÓN!
EJEMPLO 3.4
3.9.4: Entrada con la clase Scanner
3.9.4.1: Sintaxis de entrada de teclado utilizando Scanner
sintaxis
3.10: Tipos de datos primitivos (clases envoltorio)
NOTA
NOTA
resumen
conceptos clave
ejercicios
capítulo 4: Operadores y expresiones
objetivos
introducción
4.1: Operadores y expresiones
NOTA
sintaxis
4.2: Operador de asignación
Tabla 4.1: Operadores de asignación de Java.
Tabla 4.2: Equivalencia de operadores de asignación.
4.3: Operadores aritméticos
Tabla 4.3: Operadores aritméticos.
Tabla 4.4: Precedencia de operadores matemáticos básicos.
EJEMPLO 4.1
4.3.1: Asociatividad
Tabla 4.5: Prioridad y asociatividad.
EJEMPLO 4.2
4.3.2: Uso de paréntesis
¡ATEnCIÓn!
4.4: Operadores de incremento y decremento
NOTA
Tabla 4.6: Operadores de incrementación (++) y decrementación (−−).
EJEMPLO 4.3
Ejecución
EJEMPLO 4.4
Ejecución
EJEMPLO 4.5
Ejecución
4.5: Operadores relacionales
NOTA
Tabla 4.7: Operadores relacionales de Java.
¡ATEnCIÓn!
4.6: Operadores lógicos
Tabla 4.8: Operadores lógicos.
Tabla 4.9: Tabla de verdad del operador lógico not (!).
Tabla 4.10: Tabla de verdad del operador lógico or exclusivo(^).
Tabla 4.11: Tabla de verdad del operador lógico AND(&&).
Tabla 4.12: Tabla de verdad del operador lógico or (||).
NOTA
4.6.1: Evaluación en cortocircuito
EJEMPLO 4.6
EJEMPLO 4.7
4.6.2: Operadores | y &
4.6.3: Asignación booleana (lógica)
EJEMPLO 4.8
4.7: Operadores de manipulación de bits
Tabla 4.13: Operadores lógicos bita bit
Figura 4.1
4.7.1: Operadores de asignación adicionales
Tabla 4.14: Operadores de asignación adicionales.
4.7.2. Operadores de desplazamiento de bits (>>, >>>, <<)
Figura 4.2
Figura 4.3
4.8: Operador condicional (?:)
Figura 4.4
NOTA
4.9: Operador coma (,)
NOTA
4.10: Operadores ., () y []
4.10.1: Operador.
4.10.2: Operador ()
4.10.3: Operador []
4.11: Operador instanceof
NOTA
4.12: Conversiones de tipos
4.12.1: Conversión implícita
4.12.2: Reglas
4.12.3: Conversiones explícitas
4.13: Operador suma (+) con cadenas de caracteres
4.14: Prioridad y asociatividad
4.15: strictfp
NOTA
resumen
conceptos clave
ejercicios
problemas
capítulo 5: Estructuras de selección
objetivos
introducción
5.1: Estructuras de control
5.2: Sentencia if
Figura 5.1
EJEMPLO 5.1
Ejecución
EJEMPLO 5.2
EJEMPLO 5.3
Ejecución
5.3: Sentencia if de dos alternativas: if-else
Figura 5.2
EJEMPLO 5.4
Ejecución
EJEMPLO 5.5
NOTA
Ejecución
5.4: Sentencias if-else anidadas
sintaxis
EJEMPLO 5.6
5.4.1: Sangría en las sentencias if anidadas
sintaxis
sintaxis
EJEMPLO 5.7
5.4.2: Comparación de sentencias if anidadas y secuencias de sentencias if
EJEMPLO 5.8
EJEMPLO 5.9
Ejecución
Análisis
5.5: Sentencia de control switch
sintaxis
5.5.1: Sentencia break
sintaxis
EJEMPLO 5.10
EJEMPLO 5.11
PRECAUCIÓN
EJEMPLO 5.12
5.5.2: Caso particular de case
5.5.3: Uso de switch en menús
5.6: Expresiones condicionales, operador ?:
sintaxis
EJEMPLO 5.13
5.7: Evaluación en cortocircuito de expresiones lógicas
EJEMPLO 5.14
5.8: Puesta a punto de programas
5.9: Errores frecuentes de programación
resumen
conceptos clave
ejercicios
problemas
capítulo 6: Estructuras de control: bucles (lazos)
objetivos
introducción
6.1: Sentencia while
Figura 6.1
sintaxis
NOTA
Ejecución
EJEMPLO 6.1
Ejecución
6.1.1: Terminaciones anormales de un bucle
6.1.2: Bucles controlados por centinelas
Ejecución
6.1.3: Bucles controlados por indicadores o banderas
EJEMPLO 6.2
NOTA
EJEMPLO 6.3
6.1.4: Sentencia break en bucles
EJEMPLO 6.4
PRECAUCIÓN
EJEMPLO 6.5
6.1.5: La sentencia break con etiqueta
6.2: Repetición: bucle for
sintaxis
EJEMPLO 6.6
Figura 6.2
EJEMPLO 6.7
6.2.1: Usos de bucles for
6.2.2: Precauciones en el uso de for
6.2.3: Bucles infinitos
sintaxis
sintaxis
EJEMPLO 6.8
6.2.4: Los bucles for vacíos
6.2.5: Expresiones nulas en bucles for
Ejecución
6.2.6: Sentencia continue
EJEMPLO 6.9
EJEMPLO 6.10
6.3: Bucle for each (Java 5.0 y Java 6)
sintaxis
NOTA
6.4: Repetición: bucle do…while
sintaxis
EJEMPLO 6.11
Figura 6.3
EJEMPLO 6.12
6.4.1: Diferencias entre while y do-while
sintaxis
EJEMPLO 6.13
EJEMPLO 6.14
6.5: Comparación de bucles while, for y do-while
Tabla 6.1: Formatos de los bucles.
6.6: Diseño de bucles
6.6.1: Bucles para diseño de sumas y productos
6.6.2: Fin de un bucle
Tamaño de la secuencia de entrada
Preguntar antes de la iteración
Valor centinela
Agotar la entrada
EJEMPLO 6.15
6.7: Bucles anidados
EJEMPLO 6.16
EJEMPLO 6.17
EJEMPLO 6.18
EJEMPLO 6.19
6.6: Transferencia de control: sentencias break y continue
6.6.1: Sentencia break
EJEMPLO 6.20
EJEMPLO 6.21
EJEMPLO 6.22
NOTA
6.6.2: Sentencia continue
ADVERTENCIA
resumen
conceptos clave
ejercicios
problemas
capítulo 7: Fundamentos de programación orientada a objetos y UML
objetivos
introducción
7.1: Conceptos fundamentales de orientación a objetos
7.1.1: Abstracción
NOTA
7.1.2: Encapsulamiento y ocultación de datos
NOTA
7.1.3: Herencia
NOTA
Figura 7.1
Figura 7.2
7.1.4: Polimorfismo
7.1.5: Reutilización (reusabilidad)
7.2: Clases
NOTA
7.3: Objetos1
NOTA
7.3.1: Estado
7.3.2: Comportamiento
7.3.3: Identidad
NOTA
7.4: Identificación de clases y objetos
7.5: Relaciones entre clases
Figura 7.3
7.6: UML: modelado de aplicaciones
7.6.1: ¿Qué es un lenguaje de modelado?
7.6.2: Desarrollo de software orientado a objetos con UML
7.7: Diseño y representación gráfica de clases y objetos en UML
NOTA
REGLA
NOTA
7.7.1: Representación gráfica de una clase
Figura 7.4
7.7.2: Representación gráfica de objetos en UML
Figura 7.5
7.8: Herencia: clases derivadas
Figura 7.6
Figura 7.7
Figura 7.8
EJEMPLO 7.1
Figura 7.9
Figura 7.10
7.8.1: Niveles de herencia
Figura 7.11
7.8.2: Declaración de una clase derivada
REGLA
EJEMPLO 7.2
NOTA
Reglas prácticas de herencia en Java
resumen
conceptos clave
ejercicios
capítulo 8: Clases y objetos
objetivos
introducción
8.1: Clases y objetos
8.1.1: ¿Qué son los objetos?
8.1.2: ¿Qué son las clases?
8.2: Declaración de una clase
sintaxis
EJEMPLO 8.1
EJEMPLO 8.2
8.2.1: Creación de un objeto
sintaxis
NOTA
8.2.2: Visibilidad de los miembros de la clase
Figura 8.1
EJEMPLO 8.3
Tabla 8.1: Visibilidad, “x” indica que el acceso está permitido.
NOTA
8.2.3: Métodos de una clase
Figura 8.2
EJEMPLO 8.4
ejercicio 8.1
8.3: Implementación de las clases
8.4: Clases públicas
ADVERTENCIA
8.5: Paquetes
8.5.1: Sentencia package
sintaxis
8.5.2: Sentencia import
sintaxis
NOTA
EJEMPLO 8.5
8.6: Constructores
REGLAS
EJEMPLO 8.6
8.6.1: Constructor por defecto
REGLA
EJEMPLO 8.7
PRECAUCIÓN
8.6.2: Constructores sobrecargados
REGLA
EJEMPLO 8.8
8.7: Recolección de basura (objetos)
8.7.1: Método finalize ()
REGLA
ejercicio 8.2
8.8: Autorreferencia del objeto: this
8.9: Miembros static de una clase
8.9.1: Variables static
ejercicio 8.3
8.9.2: Métodos static
EJEMPLO 8.9
8.10: Consideraciones prácticas de diseño de clases
8.10.1: Métodos y clases predefinidos
NOTA
8.10.2: Clases definidas por el usuario
sintaxis
sintaxis
EJEMPLO 8.10
8.11: Biblioteca de clases de Java
8.11.1: Clase System
8.11.2: Clase Object
8.11.3: Operador instanceof
NOTA
8.11.4: Clase Math, funciones matemáticas
EJEMPLO 8.12
Tabla 8.2: Métodos matemáticos.
resumen
conceptos clave
ejercicios
problemas
capítulo 9: Métodos
objetivos
introducción
9.1: Métodos
sintaxis
sintaxis
NOTA
9.2: Método main ()
sintaxis
9.3: Retorno de un método
sintaxis
EJEMPLO 9.1
REGLA
NOTA
9.3.1: Llamada a un método
NOTA
PRECAUCIÓN
EJEMPLO 9.2
9.4: Acceso a métodos
EJEMPLO 9.3
9.5: Paso de argumentos a métodos
9.5.1: Paso de parámetros por valor
Figura 9.1
NOTA
EJEMPLO 9.4
EJEMPLO 9.5
9.5.2: Lista de parámetros
REGLA
9.5.3: Modificador final
9.6: Métodos abstractos
Figura 9.2
EJEMPLO 9.6
9.7: Sobrecarga de métodos
REGLA
EJEMPLO 9.7
9.7.1: Sobrecarga de constructores
EJEMPLO 9.8
9.8: Ámbito o alcance de variables
9.8.1: Ámbito de la clase
REGLA
9.8.2: Ámbito del método
9.8.3: Ámbito del bloque
REGLA
REGLA
NOTA
9.8.4: Variables locales
9.9: Métodos predefinidos
resumen
conceptos clave
ejercicios
problemas
capítulo 10: Arreglos (arrays)
objetivos
introducción
10.1: Arreglos (arrays)
Figura 10.1
10.1.1: Declaración de un arreglo
EJEMPLO 10.1
PRECAUCIÓN
10.1.2: Creación de un arreglo
EJEMPLO 10.2
PRECAUCIÓN
10.1.3: Subíndices de un arreglo
EJEMPLO 10.3
10.1.4: Tamaño de los arreglos, atributo length
EJEMPLO 10.4
PRECAUCIÓN
10.1.5: Verificación del índice de un arreglo
EJEMPLO 10.5
10.1.6: Inicialización de un arreglo
NOTA
ejercicio 10.1
10.1.7: Copia de arreglos
sintaxis
ejercicio 10.2
PRECAUCIÓN
10.2: Bucle for each para recorrido de arreglos y colecciones (Java SE 5.0 y 6)
NOTAS
10.3: Arreglos multidimensionales
Figura 10.2
¡ATENCIÓN!
Tabla 10.1: Arreglo bidimensional.
10.3.1: Inicialización de arreglos multidimensionales
10.3.2: Arreglos irregulares o triangulares
Figura 10.3
EJEMPLO 10.6
EJEMPLO 10.7
¡ATENCIÓN!
Figura 10.4
10.3.3: Acceso a los elementos de arreglos bidimensionales
PRECAUCIÓN
ejercicio 10.3
10.3.4: Arreglos de más de dos dimensiones
Figura 10.5
EJEMPLO 10.8
10.4: Utilización de arreglos como parámetros
Figura 10.6
ejercicio 10.4
10.4.1: Precauciones
EJEMPLO 10.9
NOTA
ejercicio 10.5
10.5: Clase Vector y ArrayList
10.5.1: Clase Vector
EJEMPLO 10.10
10.5.2: Clase ArrayList
EJEMPLO 10.11
resumen
conceptos clave
ejercicios
problemas
capítulo 11: Cadenas
objetivos
introducción
11.1: Cadena
NOTA
Figura 11.1
Tabla 11.1: Métodos de la clase string.
11.1.1: Declaración de variables objeto cadena
NOTA
11.1.2: Inicialización de variables de cadena
11.1.3: Constructores de un objeto cadena
EJEMPLO 11.1
EJEMPLO 11.2
11.2: Lectura de cadenas
EJEMPLO 11.3
Ejecución
ADVERTENCIA
NOTA
EJEMPLO 11.4
EJEMPLO 11.5
REGLAS
11.2.1: Método read()
REGLAS
EJEMPLO 11.6
11.2.2: Métodos print()
ejercicio 11.1
Ejecución
Análisis
ejercicio 11.2
Ejecución
11.3: Asignación de cadenas
11.4: Cadenas como parámetros; arreglos de cadenas
EJEMPLO 11.7
11.4.1: Arreglos de cadenas
11.5: Longitud y concatenación de cadenas
11.5.1: El método length()
ejercicio 11.3
ADVERTENCIA
11.5.2: Concatenación de cadenas
11.5.2.1: Concatenación con el operador +
EJEMPLO 11.8
11.5.2.2: Concatenación con el método concat()
NOTA
11.6: Obtención de caracteres de una cadena
11.6.1: Obtención de un carácter: método charAt()
EJEMPLO 11.9
11.6.2: Obtención de un arreglo de caracteres: método getChars()
EJEMPLO 11.10
11.6.3: Obtención de una subcadena: método substring()
EJEMPLO 11.11
11.7: Comparación de cadenas
11.7.1: Método compareTo()
EJEMPLO 11.12
11.7.2: Métodos equals() e equalsIgnoreCase()
EJEMPLO 11.13
ADVERTENCIA
11.7.3: Método regionMatches()
11.7.4: Métodos startsWith() y endsWith()
11.8: Conversión de cadenas
11.8.1: Método toUpperCase()
11.8.2: Método toLowerCase()
11.8.3: Método trim()
11.8.4: Método replace()
11.8.5: Método toCharArray()
ejercicio 11.4
11.9: Conversión de otros tipos a cadenas
EJEMPLO 11.14
11.10: Búsqueda de caracteres y cadenas
11.10.1: Método indexOf()
EJEMPLO 11.15
11.10.2: Método lastIndexOf()
EJEMPLO 11.16
TALLER PRÁCTICO EN LA WEB
resumen
conceptos clave
ejercicios
problemas
capítulo 12: Extensión de clases: interfaces, clases internas y enumeraciones
objetivos
introducción
12.1: Interfaces
sintaxis
REGLA
EJEMPLO 12.1
12.1.1: Implementación de una interfaz
ejercicio 12.1
Múltiples interfaces
REGLA
sintaxis
12.1.2: Jerarquía de interfaces
sintaxis
12.2: Herencia de clases e implementación de interfaces
REGLA
12.2.1: Variables de tipo interface
Figura 12.1
EJEMPLO 12.2
12.3: Clases abstractas
NOTA
REGLA
EJEMPLO 12.3
12.4: Clases internas
EJEMPLO 12.4
12.4.1: Clases internas miembro
REGLA
EJEMPLO 12.5
REGLA
REGLA
12.4.2: Clases internas locales
EJEMPLO 12.6
REGLA
12.4.3: Clases internas static
REGLAS DE LAS CLASES E INTERFACES STATIC
12.5: Clases anónimas
sintaxis
12.6: Enumeraciones (clases enum)
Tabla 12.1: Métodos asociados con tipos de datos enum.
NOTA
EJEMPLO 12.7
ejercicio 12.2
resumen
conceptos clave
ejercicios
problemas
capítulo 13: Herencia
objetivos
introducción
13.1: Clases derivadas
Figura 13.1
REGLA
EJEMPLO 13.1
EJEMPLO 13.2
Figura 13.2
13.1.1: Declaración de una clase derivada
sintaxis
ejercicio 13.1
Figura 13.3
13.1.2: Diseño de clases derivadas
Figura 13.4
Figura 13.5
13.1.3: Sobrecarga de métodos en la clase derivada
EJEMPLO 13.2
Ejecución
13.2: Herencia pública
Tabla 13.1: Acceso a variables y métodos según visibilidad.
ejercicio 13.3
Figura 13.6
Ejecución
REGLA
NOTA
13.3: Constructores en herencia
REGLA
Figura 13.7
EJEMPLO 13.4
Ejecución
13.3.1: Sintaxis
sintaxis
EJEMPLO 13.5
13.3.2: Referencia a la clase base: super
REGLA
REGLA
EJEMPLO 13.6
13.4: Conversión entre objetos de clase derivada y clase base
Figura 13.8
Figura 13.9
Figura 13.10
ejercicio 13.3
Ejecución
13.5: Clases no derivables: atributo final
13.6: Herencia múltiple (no soportada en Java)
Figura 13.11
REGLA
resumen
conceptos clave
ejercicios
problemas
capítulo 14: Polimorfismo
objetivos
introducción
14.1: Ligadura
14.2: Clases y métodos abstractos
Figura 14.1
Figura 14.2
EJEMPLO 14.1
Figura 14.3
14.2.1: Métodos abstractos
Figura 14.4
REGLAS
14.2.2: Ligadura dinámica mediante métodos abstractos
NORMA
EJEMPLO 14.2
Ejecución
14.3: Polimorfismo
14.3.1: Uso del polimorñ’smo
14.3.2: Ventajas del polimorfismo
ejercicio 14.1
Ejecución
14.3.3: Ligadura dinámica
14.4: Métodos no derivables: atributo final
resumen
conceptos clave
ejercicios
problemas
capítulo 15: Genericidad
objetivos
introducción
15.1: Genericidad
15.2: Declaración de una clase genérica
EJEMPLO 15.1
sintaxis
REGLA
15.3: Objetos de una clase genérica
EJEMPLO 15.2
NOTA
15.3.1: Restricciones con tipos genéricos
15.4: Clase genérica Pila
Figura 15.1
15.4.1: Utilización de la plantilla de una clase genérica
NOTA
Ejecución
15.5: Métodos genéricos
15.5.1: Definición de un método genérico
sintaxis
EJEMPLO 15.3
EJEMPLO 15.4
Ejecución
NOTA
15.5.2: Llamada a un método genérico
sintaxis
15.6: Genericidad y máquina virtual Java
15.7: Límites al tipo genérico
EJEMPLO 15.5
sintaxis
15.8: Herencia y genericidad
15.8.1: Comodín de genericidad
Figura 15.2
NOTA
EJEMPLO 15.6
15.9: Genericidad frente a polimorfismo
resumen
conceptos clave
ejercicios
capítulo 16: Excepciones
objetivos
introducción
16.1: Condiciones de error en programas
16.1.1: ¿Por qué considerar las condiciones de error?
16.2: Tratamiento de los códigos de error
16.3: Manejo de excepciones en Java
PRECAUCIÓN
16.4: Mecanismo del manejo de excepciones en Java
16.4.1: Modelo de manejo de excepciones
Figura 16.1
EJEMPLO 16.1
16.4.2: Diseño de excepciones
16.4.3: Bloques try
sintaxis
PRECAUCIÓN
EJEMPLO 16.2
16.4.4: Lanzamiento de excepciones
EJEMPLO 16.3
16.4.5: Captura de una excepción: catch
sintaxis
PRECAUCIÓN
EJEMPLO 16.4
16.4.6: Cláusula finally
EJEMPLO 16.5
16.5: Clases de excepciones definidas en Java
Figura 16.2
Figura 16.3
16.5.1: RuntimeException
16.5.2: Excepciones comprobadas
PRECUCIÓN
16.5.3: Métodos que informan de la excepción
EJEMPLO 16.6
16.6: Nuevas clases de excepciones
NOTA
16.7: Especificación de excepciones
sintaxis
REGLA
REGLA
ejercicio 16.1
resumen
conceptos clave
ejercicios
capítulo 17: Archivos y flujos
objetivos
introducción
17.1: Flujos y archivos
A TOMAR EN CUENTA
17.2: Clase File
NOTA
17.2.1: Información de un archivo
EJEMPLO 17.1
17.3: Flujos y jerarquía de clases
Tabla 17.1: Primer nivel de la jerarquía de clases de entrada/salida.
17.3.1: Archivos de bajo nivel: FilelnputStream y FileOutputStream
NOTA DE PROGRAMACIÓN
NOTA DE PROGRAMACIÓN
EJEMPLO 17.2
17.3.2: Archivos de datos: DataInputStream y DataOutputStream
NOTA
ejercicio 17.1
ejercicio 17.2
17.3.3: Flujos PrintStream
NOTA DE PROGRAMACIÓN
17.4: Archivos de caracteres: flujos de tipo Reader y Writer
17.4.1: Leer archivos de caracteres: inputStreamReader, BufferedReader y FileReader
EJEMPLO 17.3
17.4.2: Flujos que escriben caracteres:
EJEMPLO 17.4
17.5: Archivos de objetos
17.5.1: Clase de objeto persistente
NOTA DE PROGRAMACIÓN
17.5.2: Flujos ObjectOutputStream
17.5.3: Flujos ObjectlnputStream
NOTA
ejercicio 17.3
resumen
conceptos clave
ejercicios
problemas
capítulo 18: Algoritmos de ordenación y búsqueda
objetivos
introducción
18.1: Ordenación
PARA RECORDAR
18.2: Algoritmos de ordenación básicos
18.3: Ordenación por selección
18.3.1: Codificación del algoritmo de selección
18.3.2: Complejidad del algoritmo de selección
18.4: Ordenación por inserción
Figura 18.1
18.4.1: Algoritmo de ordenación por inserción
18.4.2: Codificación del algoritmo de ordenación por inserción
18.4.3: Complejidad del algoritmo de inserción
18.5: Ordenación Shell
EJEMPLO 18.1
18.5.1: Algoritmo de ordenación Shell
18.5.2: Codificación del algoritmo de ordenación Shell
18.5.3: Análisis del algoritmo de ordenación Shell
NOTA DE PROGRAMACIÓN
18.6: Ordenación de objetos
EJEMPLO 18.2
18.6.1: Ordenación
18.7: Búsqueda en listas: búsqueda secuencial y binaria
18.7.1: Búsqueda secuencial
18.7.2: Búsqueda binaria
EJEMPLO 18.3
18.7.3: Algoritmo y codificación de la búsqueda binaria
Figura 18.2
EJEMPLO 18.4
18.7.3.1: Codificación
18.7.4: Análisis de los algoritmos de búsqueda
18.7.5: Complejidad de la búsqueda secuencial
18.7.6: Análisis de la búsqueda binaria
18.7.7: Comparación de la búsqueda binaria y secuencial
Tabla 18.1: Comparación de las búsquedas binaria y secuencial.
A TOMAR EN CUENTA
resumen
conceptos clave
ejercicios
problemas
capítulo 19: Recursividad
objetivos
introducción
19.1: La naturaleza de la recursividad
EJEMPLO 19.1
EJEMPLO 19.2
A TOMAR EN CUENTA
19.2: Métodos recursivos
A TOMAR EN CUENTA
ejercicio 19.1
19.2.1: Recursividad indirecta: métodos mutuamente recursivos
ejercicio 19.2
19.2.2: Condición de terminación de la recursión
A TOMAR EN CUENTA
19.3: Recursion versus iteración
NOTA DE EJECUCIÓN
CONSEJO DE PROGRAMACIÓN
EJEMPLO 19.3
19.3.1: Directrices en la toma de decisión iteración/recursión
CONSEJO DE PROGRAMACIÓN
19.4. Recursión infinita
EJEMPLO 19.4
19.5: Algoritmos divide y vence
NORMA
19.6: Torres de Hanoi
19.6.1: Diseño del algoritmo
Figura 19.1
19.6.2: Implementación de las torres de Hanoi
19.6.3: Análisis del algoritmo torres de Hanoi
NOTA DE EJECUCIÓN
19.6.4: Búsqueda binaria
19.6.5: Análisis del algoritmo
19.7: Ordenación por mezclas: mergesort
EJEMPLO 19.5
Figura 19.2
Figura 19.3
19.7.1: Algoritmo mergesort
Figura 19.4
19.7.1.1: Codificación
resumen
conceptos clave
ejercicios
problemas
capítulo 20: Gráficos I. GUI/Swing
objetivos
introducción
20.1: Swing
20.1.1: Paquetes de las API de Java
NOTA
NOTA
20.1.2: Swing versus AWT
NOTA
Tabla 20.1: Paquetes importantes de Java API.
Figura 20.1
20.2: Crear un marco o clase JFrame
20.2.1: Métodos propios de JFrame
NOTA
EJEMPLO 20.1
Ejecución
EJEMPLO 20.2
Ejecución
20.3: Administrador de diseño
20.3.1: BorderLayout
EJEMPLO 20.3
Ejecución
20.3.2: FlowLayout
EJEMPLO 20.4
Ejecución
20.3.3: GridLayout
EJEMPLO 20.5
Ejecución
20.3.4: BoxLayout
EJEMPLO 20.6
Ejecución
20.3.5: BoxLayout-Box
EJEMPLO 20.7
Ejecución
20.3.6: Combinar gestores de posicionamiento
EJEMPLO 20.8
Ejecución
20.3.7: Desactivar el gestor de posicionamiento
NOTA
20.4: Botones y etiquetas
20.4.1: Etiquetas
Constructores de etiquetas
20.4.2: Botones
Figura 20.2
Métodos de AbstractButton
JButton
Botones con dos estados
Constructores de JRadioButton
EJEMPLO 20.9
Casillas de verificación
Constructores de JCheckBox
20.4.3: JComboBox
Constructores de JComboBox
EJEMPLO 20.10
20.5: Componentes de texto
Figura 20.3
20.5.1: JTextComponent
20.5.2. JTextField, JPasswordField
EJEMPLO 20.11
Ejecución
20.5.3: JTextArea
EJEMPLO 20.12
resumen
conceptos clave
ejercicios
problemas
capítulo 21: Gráficos II. Componentes y eventos
objetivos
introducción
21.1: Ventanas de diálogo
EJEMPLO 21.1
Ejecución
21.2: Selección de archivos: JFileChooser
EJEMPLO 21.2
Ejecución
21.2.1: Métodos de interés de JFileChooser
21.2.1: Filtros de selección de archivos
EJEMPLO 21.3
Ejecución
21.3: Eventos
21.4: Gestión de eventos
21.4.1: Oyente de un evento
21.5: Jerarquía de eventos
Figura 21.1
NOTA
21.6: Componentes gráficos como fuentes de eventos
Tabla 21.1: Eventos de componentes gráficos.
EJEMPLO 21.4
EJEMPLO 21.5
21.6.1: Listeners y eventos
Tabla 21.2: Listeners de los eventos.
resumen
conceptos clave
ejercicios
problemas
capítulo 22: Applets: programación en internet
objetivos
introducción
22.1: Concepto de applet
RECOMENDACIÓN
22.2: Creación de un applet
Figura 22.1
22.2.1: Creación práctica de un applet
EJEMPLO 22.1
EJEMPLO 22.2
Figura 22.2
Figura 22.3
22.2.2: Documento HTML para applet
22.2.3: Compilación y ejecución de un applet
22.3: Ciclo de vida de un applet
Tabla 22.1: Métodos del ciclo de vida de la clase JApplet del paquete javax.swlng.
Figura 22.4
EJEMPLO 22.3
22.4: Dibujar imágenes en un applet
Figura 22.5
22.4.1: void paint (Graphics g)
22.4.2: void resize(int ancho, int alto)
22.4.3: void repaint ()
EJEMPLO 22.4
22.5: Clases Graphics, Font y Color
NOTA
22.6: Parámetros en un applet
22.7: Seguridad
22.8: Conversión de un programa aplicación en un applet
22.9: Recursos web
resumen
conceptos clave
ejercicio final
problemas
Back Matter
apéndice A: Códigos de numeración
A.1: Representación de la información en las computadoras
Representación de la información en las computadoras
Representación de textos
Representación de valores numéricos
Representación de enteros
Tabla A.1: Tipos enteros reales.
Representación de números reales
EJEMPLO
EJEMPLO
Figura A.1
Representación de caracteres
Representación de imágenes
Figura A.2
Tabla A.2: Mapas de bits.
Representación de sonidos
Tabla A.3: Mapas de vectores.
A.2: Codificación de la información
A.2.1: Sistemas de numeración
Tabla A.4: Representación de números decimales y binarios.
Tabla A.5: equivalencias de códigos decimal, binario, octal y hexadecimal.
A.2.2: Conversión de números en base 10 (decimal) a base 2 (binario)
EJEMPLO
EJEMPLO
A.2.3: Conversión de un número binario a número decimal
EJEMPLO
A.2.4: Conversión entre números hexadecimales y decimales
EJEMPLO
EJEMPLO
A.2.5: Conversión entre números binarios y hexadecimales
Tabla A.6: Conversión hexadecimal a binario.
EJEMPLO
EJEMPLO
A.2.6: Conversión de un número binario (base 2) a número octal (base 8)
Tabla A.7: Dígitos en el sistema octal.
EJEMPLO
apéndice B: Códigos ASCII y UNICODE
Código ASCII
Tabla B.1: Código ASCII de la computadora personal PC.
Código Unicode
Referencias web
Bibliografía
apéndice C: Palabras reservadas de Java (versiones 2, 5 y 6)
Tabla C.1: Palabras clave (keywords) de Java.
CONSEJOS
C.1: Palabras reservadas con significado especial
Tabla C.2: Palabras reservadas especiales.
apéndice D: Prioridad de operadores Java
Tabla D.1: Prioridad de los operadores Java.
apéndice E: Bibliotecas de clases de Java SE 6
Tabla E.1: Packages (paquetes).
apéndice F: Especificaciones de Java
Java 7
apéndice G: Bibliografía
Índice analítico
Valoraciones
No hay valoraciones aún.