RESUMEN DEL CONTENIDO PARTE 1. PROGRAMACIÓN BÁSICA .................................
1
CAPÍTULO 1. FASES EN EL DESARROLLO DE UN PROGRAMA .................
3
CAPÍTULO 2. INTRODUCCIÓN A JAVA ............................................................
19
CAPÍTULO 3. INTRODUCCIÓN A LA POO ........................................................
33
CAPÍTULO 4. ELEMENTOS DEL LENGUAJE ...................................................
59
CAPÍTULO 5. ESTRUCTURA DE UN PROGRAMA ..........................................
85
CAPÍTULO 6. CLASES DE USO COMÚN ........................................................... 109 CAPÍTULO 7. SENTENCIAS DE CONTROL ....................................................... 147 CAPÍTULO 8. MATRICES ..................................................................................... 185 CAPÍTULO 9. MÁS SOBRE MÉTODOS Y COLECCIONES .............................. 239
PARTE 2. MECANISMOS DE ABSTRACCIÓN................... 271 CAPÍTULO 10. CLASES Y PAQUETES ............................................................... 273 CAPÍTULO 11. SUBCLASES E INTERFACES .................................................... 365 CAPÍTULO 12. CLASES GENÉRICAS ................................................................. 427 CAPÍTULO 13. EXCEPCIONES ............................................................................ 439
VIII
JAVA 2: CURSO DE PROGRAMACIÓN
CAPÍTULO 14. FLUJOS ......................................................................................... 463
PARTE 3. DISEÑO Y PROGRAMACIÓN ............................. 535 CAPÍTULO 15. ESTRUCTURAS DINÁMICAS ................................................... 537 CAPÍTULO 16. ALGORITMOS ............................................................................. 623 CAPÍTULO 17. HILOS ........................................................................................... 669 CAPÍTULO 18. INTERFACES GRÁFICAS Y APLICACIONES PARA INTERNET ... ............................................................................... 731
PARTE 4. APÉNDICES ............................................................. 777 A. INSTALACIÓN DEL SOFTWARE ................................................................... 779 B. ENTORNO DE DESARROLLO INTEGRADO PARA JAVA.......................... 783 C. PLATAFORMAS UNIX/LINUX........................................................................ 817 D. FICHEROS JAR .................................................................................................. 819 E. JAVA COMPARADO CON C/C++.................................................................... 823 ÍNDICE .................................................................................................................... 827
CONTENIDO PRÓLOGO......................................................................................................... XXIII
PARTE 1. PROGRAMACIÓN BÁSICA ................................
1
CAPÍTULO 1. FASES EN EL DESARROLLO DE UN PROGRAMA ............
3
QUÉ ES UN PROGRAMA................................................................................. LENGUAJES DE PROGRAMACIÓN............................................................... Compiladores ................................................................................................. Intérpretes....................................................................................................... ¿QUÉ ES JAVA? ................................................................................................ HISTORIA DE JAVA ......................................................................................... ¿POR QUÉ APRENDER JAVA? ....................................................................... REALIZACIÓN DE UN PROGRAMA EN JAVA ............................................ Cómo crear un programa ................................................................................ Interfaz de línea de órdenes............................................................................ ¿Qué hace este programa?......................................................................... Guardar el programa escrito en el disco.................................................... Compilar y ejecutar el programa ............................................................... Biblioteca de clases ................................................................................... Guardar el programa ejecutable en el disco .............................................. Depurar un programa ................................................................................ Entorno de desarrollo integrado ..................................................................... EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
3 4 6 6 7 8 9 9 11 11 12 13 13 15 15 16 16 16 18
X
JAVA 2: CURSO DE PROGRAMACIÓN
CAPÍTULO 2. INTRODUCCIÓN A JAVA ........................................................
19
DECLARACIÓN DE UNA VARIABLE ........................................................... ASIGNAR VALORES ........................................................................................ AÑADIR COMENTARIOS ............................................................................... MOSTRAR DATOS POR LA PANTALLA ...................................................... EXPRESIONES ARITMÉTICAS ...................................................................... EXPRESIONES CONDICIONALES ................................................................. ESCRIBIR NUESTROS PROPIOS MÉTODOS................................................ EJERCICIOS PROPUESTOS.............................................................................
19 22 23 24 25 27 29 31
CAPÍTULO 3. INTRODUCCIÓN A LA POO ....................................................
33
PENSAR EN OBJETOS ..................................................................................... Clases y objetos .............................................................................................. Mensajes y métodos ....................................................................................... DISEÑO DE UNA CLASE DE OBJETOS ........................................................ CONSTRUCTORES ........................................................................................... HERENCIA......................................................................................................... EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
34 34 35 36 43 46 53 57
CAPÍTULO 4. ELEMENTOS DEL LENGUAJE ...............................................
59
PRESENTACIÓN DE LA SINTAXIS DE JAVA .............................................. CARACTERES DE JAVA ................................................................................. Letras, dígitos y otros ..................................................................................... Espacios en blanco ......................................................................................... Caracteres especiales y signos de puntuación ................................................ Secuencias de escape...................................................................................... TIPOS DE DATOS ............................................................................................. Tipos primitivos ............................................................................................. Tipos referenciados ........................................................................................ Tipos enumerados .......................................................................................... LITERALES ....................................................................................................... Literales enteros ............................................................................................. Literales reales ............................................................................................... Literales de un solo carácter ........................................................................... Literales de cadenas de caracteres .................................................................. IDENTIFICADORES ......................................................................................... PALABRAS CLAVE .......................................................................................... COMENTARIOS ................................................................................................
59 60 60 60 61 61 62 62 64 64 65 65 66 66 67 67 68 68
CONTENIDO
XI
DECLARACIÓN DE CONSTANTES SIMBÓLICAS ...................................... ¿Por qué utilizar constantes? .......................................................................... Sentencia import static ................................................................................... DECLARACIÓN DE UNA VARIABLE ........................................................... Iniciación de una variable .............................................................................. EXPRESIONES NUMÉRICAS .......................................................................... CONVERSIÓN ENTRE TIPOS DE DATOS..................................................... OPERADORES................................................................................................... Operadores aritméticos................................................................................... Operadores de relación................................................................................... Operadores lógicos ......................................................................................... Operadores unitarios ...................................................................................... Operadores a nivel de bits .............................................................................. Operadores de asignación .............................................................................. Operador condicional ..................................................................................... PRIORIDAD Y ORDEN DE EVALUACIÓN ................................................... EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
69 70 70 71 72 73 73 74 74 75 76 77 77 78 80 81 82 84
CAPÍTULO 5. ESTRUCTURA DE UN PROGRAMA...........................................
85
ESTRUCTURA DE UNA APLICACIÓN JAVA .............................................. Paquetes y protección de clases ..................................................................... Protección de una clase .................................................................................. Sentencia import ............................................................................................ Definiciones y declaraciones.......................................................................... Sentencia simple ............................................................................................ Sentencia compuesta o bloque ....................................................................... Métodos.......................................................................................................... Definición de un método ........................................................................... Método main .................................................................................................. Crear objetos de una clase .............................................................................. Cómo acceder a los miembros de un objeto ................................................... Protección de los miembros de una clase ....................................................... Miembro de un objeto o de una clase............................................................. Referencias a objetos...................................................................................... Pasando argumentos a los métodos ................................................................ PROGRAMA JAVA FORMADO POR MÚLTIPLES FICHEROS ....................... ACCESIBILIDAD DE VARIABLES................................................................. EJERCICIOS PROPUESTOS.............................................................................
85 89 90 91 92 93 94 94 94 95 95 97 98 99 101 104 105 107 108
XII
JAVA 2: CURSO DE PROGRAMACIÓN
CAPÍTULO 6. CLASES DE USO COMÚN ........................................................ 109 ENTRADA Y SALIDA ...................................................................................... Flujos de entrada ............................................................................................ Flujos de salida............................................................................................... Excepciones ................................................................................................... Flujos estándar de E/S .................................................................................... Determinar la clase a la que pertenece un objeto ...................................... BufferedInputStream................................................................................. BufferedReader ......................................................................................... PrintStream ............................................................................................... Trabajar con tipos de datos primitivos ........................................................... Clases que encapsulan los tipos primitivos ............................................... Clase Leer ...................................................................................................... ¿DÓNDE SE UBICAN LAS CLASES QUE DAN SOPORTE?........................ Variable CLASSPATH .................................................................................. CARÁCTER FIN DE FICHERO ........................................................................ CARACTERES \r\n ............................................................................................ ALTERNATIVA A LOS FLUJOS DE E/S ........................................................ Entrad
RESUMEN DEL CONTENIDO DE INVENTARIO DE BIENES MUEBLES DEPENDENCIA SECRETARIA DE SEGURIDAD PUBLICA RESPONSABLE DE LA INFORMACION ISIDRO DE LEON HERNAND
Story Transcript
RESUMEN DEL CONTENIDO PARTE 1. PROGRAMACIÓN BÁSICA .................................
1
CAPÍTULO 1. FASES EN EL DESARROLLO DE UN PROGRAMA .................
3
CAPÍTULO 2. INTRODUCCIÓN A JAVA ............................................................
19
CAPÍTULO 3. INTRODUCCIÓN A LA POO ........................................................
33
CAPÍTULO 4. ELEMENTOS DEL LENGUAJE ...................................................
59
CAPÍTULO 5. ESTRUCTURA DE UN PROGRAMA ..........................................
85
CAPÍTULO 6. CLASES DE USO COMÚN ........................................................... 109 CAPÍTULO 7. SENTENCIAS DE CONTROL ....................................................... 147 CAPÍTULO 8. MATRICES ..................................................................................... 185 CAPÍTULO 9. MÁS SOBRE MÉTODOS Y COLECCIONES .............................. 239
PARTE 2. MECANISMOS DE ABSTRACCIÓN................... 271 CAPÍTULO 10. CLASES Y PAQUETES ............................................................... 273 CAPÍTULO 11. SUBCLASES E INTERFACES .................................................... 365 CAPÍTULO 12. CLASES GENÉRICAS ................................................................. 427 CAPÍTULO 13. EXCEPCIONES ............................................................................ 439
PARTE 3. DISEÑO Y PROGRAMACIÓN ............................. 535 CAPÍTULO 15. ESTRUCTURAS DINÁMICAS ................................................... 537 CAPÍTULO 16. ALGORITMOS ............................................................................. 623 CAPÍTULO 17. HILOS ........................................................................................... 669 CAPÍTULO 18. INTERFACES GRÁFICAS Y APLICACIONES PARA INTERNET ... ............................................................................... 731
PARTE 4. APÉNDICES ............................................................. 777 A. INSTALACIÓN DEL SOFTWARE ................................................................... 779 B. ENTORNO DE DESARROLLO INTEGRADO PARA JAVA.......................... 783 C. PLATAFORMAS UNIX/LINUX........................................................................ 817 D. FICHEROS JAR .................................................................................................. 819 E. JAVA COMPARADO CON C/C++.................................................................... 823 ÍNDICE .................................................................................................................... 827
PARTE 1. PROGRAMACIÓN BÁSICA ................................
1
CAPÍTULO 1. FASES EN EL DESARROLLO DE UN PROGRAMA ............
3
QUÉ ES UN PROGRAMA................................................................................. LENGUAJES DE PROGRAMACIÓN............................................................... Compiladores ................................................................................................. Intérpretes....................................................................................................... ¿QUÉ ES JAVA? ................................................................................................ HISTORIA DE JAVA ......................................................................................... ¿POR QUÉ APRENDER JAVA? ....................................................................... REALIZACIÓN DE UN PROGRAMA EN JAVA ............................................ Cómo crear un programa ................................................................................ Interfaz de línea de órdenes............................................................................ ¿Qué hace este programa?......................................................................... Guardar el programa escrito en el disco.................................................... Compilar y ejecutar el programa ............................................................... Biblioteca de clases ................................................................................... Guardar el programa ejecutable en el disco .............................................. Depurar un programa ................................................................................ Entorno de desarrollo integrado ..................................................................... EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
3 4 6 6 7 8 9 9 11 11 12 13 13 15 15 16 16 16 18
X
JAVA 2: CURSO DE PROGRAMACIÓN
CAPÍTULO 2. INTRODUCCIÓN A JAVA ........................................................
19
DECLARACIÓN DE UNA VARIABLE ........................................................... ASIGNAR VALORES ........................................................................................ AÑADIR COMENTARIOS ............................................................................... MOSTRAR DATOS POR LA PANTALLA ...................................................... EXPRESIONES ARITMÉTICAS ...................................................................... EXPRESIONES CONDICIONALES ................................................................. ESCRIBIR NUESTROS PROPIOS MÉTODOS................................................ EJERCICIOS PROPUESTOS.............................................................................
19 22 23 24 25 27 29 31
CAPÍTULO 3. INTRODUCCIÓN A LA POO ....................................................
33
PENSAR EN OBJETOS ..................................................................................... Clases y objetos .............................................................................................. Mensajes y métodos ....................................................................................... DISEÑO DE UNA CLASE DE OBJETOS ........................................................ CONSTRUCTORES ........................................................................................... HERENCIA......................................................................................................... EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
34 34 35 36 43 46 53 57
CAPÍTULO 4. ELEMENTOS DEL LENGUAJE ...............................................
59
PRESENTACIÓN DE LA SINTAXIS DE JAVA .............................................. CARACTERES DE JAVA ................................................................................. Letras, dígitos y otros ..................................................................................... Espacios en blanco ......................................................................................... Caracteres especiales y signos de puntuación ................................................ Secuencias de escape...................................................................................... TIPOS DE DATOS ............................................................................................. Tipos primitivos ............................................................................................. Tipos referenciados ........................................................................................ Tipos enumerados .......................................................................................... LITERALES ....................................................................................................... Literales enteros ............................................................................................. Literales reales ............................................................................................... Literales de un solo carácter ........................................................................... Literales de cadenas de caracteres .................................................................. IDENTIFICADORES ......................................................................................... PALABRAS CLAVE .......................................................................................... COMENTARIOS ................................................................................................
DECLARACIÓN DE CONSTANTES SIMBÓLICAS ...................................... ¿Por qué utilizar constantes? .......................................................................... Sentencia import static ................................................................................... DECLARACIÓN DE UNA VARIABLE ........................................................... Iniciación de una variable .............................................................................. EXPRESIONES NUMÉRICAS .......................................................................... CONVERSIÓN ENTRE TIPOS DE DATOS..................................................... OPERADORES................................................................................................... Operadores aritméticos................................................................................... Operadores de relación................................................................................... Operadores lógicos ......................................................................................... Operadores unitarios ...................................................................................... Operadores a nivel de bits .............................................................................. Operadores de asignación .............................................................................. Operador condicional ..................................................................................... PRIORIDAD Y ORDEN DE EVALUACIÓN ................................................... EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
CAPÍTULO 5. ESTRUCTURA DE UN PROGRAMA...........................................
85
ESTRUCTURA DE UNA APLICACIÓN JAVA .............................................. Paquetes y protección de clases ..................................................................... Protección de una clase .................................................................................. Sentencia import ............................................................................................ Definiciones y declaraciones.......................................................................... Sentencia simple ............................................................................................ Sentencia compuesta o bloque ....................................................................... Métodos.......................................................................................................... Definición de un método ........................................................................... Método main .................................................................................................. Crear objetos de una clase .............................................................................. Cómo acceder a los miembros de un objeto ................................................... Protección de los miembros de una clase ....................................................... Miembro de un objeto o de una clase............................................................. Referencias a objetos...................................................................................... Pasando argumentos a los métodos ................................................................ PROGRAMA JAVA FORMADO POR MÚLTIPLES FICHEROS ....................... ACCESIBILIDAD DE VARIABLES................................................................. EJERCICIOS PROPUESTOS.............................................................................
CAPÍTULO 6. CLASES DE USO COMÚN ........................................................ 109 ENTRADA Y SALIDA ...................................................................................... Flujos de entrada ............................................................................................ Flujos de salida............................................................................................... Excepciones ................................................................................................... Flujos estándar de E/S .................................................................................... Determinar la clase a la que pertenece un objeto ...................................... BufferedInputStream................................................................................. BufferedReader ......................................................................................... PrintStream ............................................................................................... Trabajar con tipos de datos primitivos ........................................................... Clases que encapsulan los tipos primitivos ............................................... Clase Leer ...................................................................................................... ¿DÓNDE SE UBICAN LAS CLASES QUE DAN SOPORTE?........................ Variable CLASSPATH .................................................................................. CARÁCTER FIN DE FICHERO ........................................................................ CARACTERES \r\n ............................................................................................ ALTERNATIVA A LOS FLUJOS DE E/S ........................................................ Entrada de datos ............................................................................................. Salida con formato ......................................................................................... Clase Formatter .............................................................................................. MÉTODOS MATEMÁTICOS ........................................................................... EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
CAPÍTULO 9. MÁS SOBRE MÉTODOS Y COLECCIONES ......................... 239 PASAR UNA MATRIZ COMO ARGUMENTO A UN MÉTODO .................... DATOS RETORNADOS POR UN MÉTODO .................................................. REFERENCIA A UN TIPO PRIMITIVO ........................................................... ARGUMENTOS EN LA LÍNEA DE ÓRDENES .............................................. MÉTODOS RECURSIVOS ................................................................................ MÉTODOS SOBRECARGADOS ...................................................................... NÚMERO VARIABLE DE PARÁMETROS .................................................... LA CLASE Object .............................................................................................. boolean equals(Object obj) ............................................................................ String toString() ............................................................................................. void finalize() ................................................................................................. LA CLASE Arrays .............................................................................................. binarySearch................................................................................................... equals ............................................................................................................. fill ................................................................................................................... sort..................................................................................................................
COLECCIONES ................................................................................................. MÁS SOBRE REFERENCIAS Y OBJETOS String .......................................... EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
XV 259 260 263 268
PARTE 2. MECANISMOS DE ABSTRACCIÓN.................. 271 CAPÍTULO 10. CLASES Y PAQUETES ............................................................ 273 DEFINICIÓN DE UNA CLASE ........................................................................ Atributos ........................................................................................................ Métodos de una clase ..................................................................................... Control de acceso a los miembros de la clase ................................................ Acceso predeterminado ............................................................................. Acceso público .......................................................................................... Acceso privado.......................................................................................... Acceso protegido ...................................................................................... IMPLEMENTACIÓN DE UNA CLASE ........................................................... MÉTODOS SOBRECARGADOS ...................................................................... NÚMERO VARIABLE DE PARÁMETROS .................................................... IMPLEMENTACIÓN DE UNA APLICACIÓN ................................................ CONTROL DE ACCESO A UNA CLASE ........................................................ REFERENCIA this ............................................................................................. VARIABLES, MÉTODOS Y CLASES FINALES ............................................ INICIACIÓN DE UN OBJETO .......................................................................... Constructor ..................................................................................................... Sobrecarga del constructor ............................................................................. Llamar a un constructor ................................................................................. Asignación de objetos .................................................................................... Constructor copia ........................................................................................... DESTRUCCIÓN DE OBJETOS......................................................................... Destructor ....................................................................................................... Ejecutar el recolector de basura ..................................................................... REFERENCIAS COMO MIEMBROS DE UNA CLASE ................................. REDEFINIR MÉTODOS HEREDADOS DE Object ......................................... Método equals ................................................................................................ Método clone.................................................................................................. MIEMBROS STATIC DE UNA CLASE ........................................................... Atributos static ............................................................................................... Acceder a los atributos static.......................................................................... Métodos static ................................................................................................
CLASES ANIDADAS ........................................................................................ Clases internas................................................................................................ Clases definidas dentro de un método ............................................................ Clases anónimas ............................................................................................. TIPOS ENUMERADOS ..................................................................................... MATRICES DE OBJETOS ................................................................................ PAQUETES ........................................................................................................ Crear un paquete ............................................................................................ La clase aplicación pertenece a un paquete .................................................... Compilar y ejecutar la aplicación desde NetBeans ................................... Compilar y ejecutar la aplicación desde una consola................................ EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
CAPÍTULO 11. SUBCLASES E INTERFACES ................................................ 365 CLASES Y MÉTODOS ABSTRACTOS ........................................................... SUBCLASES Y HERENCIA ............................................................................. DEFINIR UNA SUBCLASE .............................................................................. Control de acceso a los miembros de las clases ............................................. Qué miembros hereda una subclase ............................................................... ATRIBUTOS CON EL MISMO NOMBRE....................................................... REDEFINIR MÉTODOS DE LA SUPERCLASE ............................................. CONSTRUCTORES DE LAS SUBCLASES .................................................... COPIA DE OBJETOS ........................................................................................ DESTRUCTORES DE LAS SUBCLASES........................................................ JERARQUÍA DE CLASES ................................................................................ REFERENCIAS A OBJETOS DE UNA SUBCLASE ....................................... Conversiones implícitas ................................................................................. Conversiones explícitas.................................................................................. INFORMACIÓN DE TIPOS DURANTE LA EJECUCIÓN ............................. POLIMORFISMO............................................................................................... MÉTODOS EN LÍNEA ......................................................................................... INTERFACES..................................................................................................... Definir una interfaz ........................................................................................ Un ejemplo: la interfaz IFecha ....................................................................... Utilizar una interfaz ....................................................................................... Clase abstracta frente a interfaz ..................................................................... Utilizar una interfaz como un tipo ................................................................. Interfaces frente a herencia múltiple .............................................................. Para qué sirve una interfaz ............................................................................. Implementar múltiples interfaces ...................................................................
EJERCICIOS RESUELTOS ............................................................................... 422 EJERCICIOS PROPUESTOS............................................................................. 425 CAPÍTULO 12. CLASES GENÉRICAS .............................................................. 427 DEFINICIÓN DE CLASES GENÉRICAS ........................................................ Relación entre clases genéricas ...................................................................... Tipo comodín ................................................................................................. MÉTODOS GENÉRICOS .................................................................................. EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
428 432 432 435 436 438
CAPÍTULO 13. EXCEPCIONES ......................................................................... 439 EXCEPCIONES DE JAVA ................................................................................ MANEJAR EXCEPCIONES .............................................................................. Lanzar una excepción..................................................................................... Capturar una excepción .................................................................................. Excepciones derivadas ................................................................................... BLOQUE DE FINALIZACIÓN ......................................................................... DECLARAR EXCEPCIONES ........................................................................... CREAR EXCEPCIONES ................................................................................... FLUJO DE EJECUCIÓN .................................................................................... CUÁNDO UTILIZAR EXCEPCIONES Y CUÁNDO NO ................................ EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
441 443 444 444 446 447 449 451 453 455 456 461
CAPÍTULO 14. FLUJOS....................................................................................... 463 VISIÓN GENERAL DE LOS FLUJOS DE E/S................................................. Flujos que no procesan los datos de E/S ........................................................ Flujos que procesan los datos de E/S ............................................................. ABRIENDO FICHEROS PARA ACCESO SECUENCIAL .............................. Flujos de bytes ............................................................................................... FileOutputStream ...................................................................................... FileInputStream......................................................................................... Clase File........................................................................................................ Flujos de caracteres ........................................................................................ FileWriter .................................................................................................. FileReader .................................................................................................
465 466 468 473 474 474 477 478 481 482 483
XVIII
JAVA 2: CURSO DE PROGRAMACIÓN
Flujos de datos ............................................................................................... DataOutputStream..................................................................................... DataInputStream ....................................................................................... Un ejemplo de acceso secuencial ................................................................... SERIACIÓN DE OBJETOS ............................................................................... Escribir objetos en un fichero ........................................................................ Leer objetos desde un fichero ........................................................................ Seriar objetos que referencian a objetos......................................................... ABRIENDO FICHEROS PARA ACCESO ALEATORIO ................................ La clase RandomAccessFile........................................................................... La clase CPersona .......................................................................................... La clase CListaTfnos...................................................................................... Constructor CListaTfnos ........................................................................... Escribir un registro en el fichero ............................................................... Añadir un registro al final del fichero ....................................................... Leer un registro del fichero ....................................................................... Eliminar un registro del fichero ................................................................ ¿Hay registros marcados para eliminar? ................................................... Buscar un registro en el fichero ................................................................ Un ejemplo de acceso aleatorio a un fichero.................................................. Modificar un registro ................................................................................ Actualizar el fichero .................................................................................. ESCRIBIR DATOS EN LA IMPRESORA ........................................................ EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
PARTE 3. DISEÑO Y PROGRAMACIÓN ............................ 535 CAPÍTULO 15. ESTRUCTURAS DINÁMICAS ................................................ 537 LISTAS LINEALES ........................................................................................... Listas lineales simplemente enlazadas ........................................................... Operaciones básicas ....................................................................................... Inserción de un elemento al comienzo de la lista ...................................... Buscar en una lista un elemento con un valor x ........................................ Inserción de un elemento en general ......................................................... Borrar un elemento de la lista ................................................................... Recorrer una lista ...................................................................................... Borrar todos los elementos de una lista .................................................... UNA CLASE PARA LISTAS LINEALES ........................................................ Clase genérica para listas lineales .................................................................. Clase LinkedList .....................................................................................
538 538 541 542 544 544 545 546 546 547 550 558
CONTENIDO
XIX
LISTAS CIRCULARES ..................................................................................... Clase CListaCircularSE........................................................................... PILAS.................................................................................................................. COLAS ................................................................................................................ EJEMPLO ........................................................................................................... LISTA DOBLEMENTE ENLAZADA ............................................................... Lista circular doblemente enlazada ................................................................ Clase CListaCircularDE ..................................................................... Ejemplo ..................................................................................................... ÁRBOLES........................................................................................................... Árboles binarios ............................................................................................. Formas de recorrer un árbol binario ............................................................... ÁRBOLES BINARIOS DE BÚSQUEDA .......................................................... Clase CArbolBinB .................................................................................. Buscar un nodo en el árbol ............................................................................. Insertar un nodo en el árbol............................................................................ Borrar un nodo del árbol ................................................................................ Utilización de la clase CArbolBinB ........................................................ ÁRBOLES BINARIOS PERFECTAMENTE EQUILIBRADOS ...................... Clase CArbolBinE ................................................................................... Utilización de la clase CArbolBinE ........................................................ CLASES APORTADAS POR LA BIBLIOTECA JAVA .................................. EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
CAPÍTULO 16. ALGORITMOS .......................................................................... 623 RECURSIVIDAD ............................................................................................... ORDENACIÓN DE DATOS .............................................................................. Método de la burbuja ..................................................................................... Método de inserción ....................................................................................... Método quicksort ........................................................................................... Comparación de los métodos expuestos......................................................... BÚSQUEDA DE DATOS .................................................................................. Búsqueda secuencial ...................................................................................... Búsqueda binaria ............................................................................................ Búsqueda de cadenas ..................................................................................... ORDENACIÓN DE FICHEROS EN DISCO..................................................... Ordenación de ficheros. Acceso secuencial ................................................... Ordenación de ficheros. Acceso aleatorio ...................................................... ALGORITMOS HASH ....................................................................................... Matrices hash .................................................................................................
Método hash abierto ....................................................................................... Método hash con desbordamiento .................................................................. Eliminación de elementos .............................................................................. Clase CHashAbierto ....................................................................................... Un ejemplo de una matriz hash ...................................................................... EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
656 657 658 658 662 665 667
CAPÍTULO 17. HILOS ......................................................................................... 669 CONCEPTO DE PROCESO .............................................................................. HILOS ................................................................................................................. Estados de un hilo .......................................................................................... Cuándo se debe crear un hilo ......................................................................... PROGRAMAR CON HILOS ............................................................................. Crear un hilo................................................................................................... Hilo derivado de Thread ........................................................................... Hilo asociado con una clase ...................................................................... Demonios ....................................................................................................... Finalizar un hilo ............................................................................................. Controlar un hilo ............................................................................................ Preparado .................................................................................................. Bloqueado ................................................................................................. Dormido .................................................................................................... Esperando.................................................................................................. SINCRONIZACIÓN DE HILOS ........................................................................ Secciones críticas ........................................................................................... Exclusión mutua........................................................................................ Monitor reentrante .................................................................................... Utilizar wait y notify ...................................................................................... ¿Por qué los métodos almacenar y obtener utilizan un bucle?.................. Interbloqueo ................................................................................................... GRUPO DE HILOS ............................................................................................ Grupo predefinido .......................................................................................... Grupo explícito .............................................................................................. PLANIFICACIÓN DE HILOS ........................................................................... ¿Qué ocurre con los hilos que tengan igual prioridad? .................................. Asignar prioridades a los hilos ....................................................................... TUBERÍAS ......................................................................................................... ESPERA ACTIVA Y PASIVA........................................................................... EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
CAPÍTULO 18. INTERFACES GRÁFICAS Y APLICACIONES PARA INTERNET .................................................................................. 731 INTERFACES GRÁFICAS ................................................................................ Estructura de una aplicación .......................................................................... Compilar y ejecutar la aplicación ................................................................... DISEÑO DE LA INTERFAZ GRÁFICA ........................................................... Crear un componente Swing .......................................................................... Componentes Swing más comunes ........................................................... Contenedores .................................................................................................. Administradores de diseño ............................................................................. Añadir los componentes al contenedor .......................................................... Asignar un administrador de diseño.......................................................... Añadir una etiqueta y editar sus propiedades............................................ Añadir un botón de pulsación y editar sus propiedades ............................ MANEJO DE EVENTOS ................................................................................... Asignar manejadores de eventos a un objeto ................................................. Adaptadores ................................................................................................... Responder a los eventos ................................................................................. ACCEDER A LA WEB ...................................................................................... PÁGINAS WEB.................................................................................................. PÁGINAS WEB DINÁMICAS .......................................................................... APPLETS ............................................................................................................ Crear un applet ............................................................................................... Un ejemplo simple ......................................................................................... Restricciones de seguridad con los applets .................................................... Instalación de un applet en un servidor .......................................................... SERVLETS ......................................................................................................... Estructura de un servlet .................................................................................. Software necesario para ejecutar un servlet ................................................... Desplegar un servlet en el servidor ................................................................ Invocando al servlet desde una página HTML .............................................. Descriptor de despliegue ................................................................................ Ejecutar un servlet .......................................................................................... EJERCICIOS RESUELTOS ............................................................................... EJERCICIOS PROPUESTOS.............................................................................
PARTE 4. APÉNDICES ............................................................ 777 INSTALACIÓN DEL SOFTWARE ..................................................................... 779 ENTORNO DE DESARROLLO INTEGRADO PARA JAVA ......................... 783
XXII
JAVA 2: CURSO DE PROGRAMACIÓN
PLATAFORMAS UNIX/LINUX .......................................................................... 817 FICHEROS JAR .................................................................................................... 819 JAVA COMPARADO CON C/C++ ..................................................................... 823 ÍNDICE .................................................................................................................. 827