Cómo Programar Java (7ta Ed.) - DEITEL



Como Programar Java (7ta Ed.) - DEITEL

CONTENIDO

1 Introducción a las computadoras, Internet y Web 1
1.1 Introducción 2
1.2 ¿Qué es una computadora? 4
1.3 Organización de una computadora 4
1.4 Los primeros sistemas operativos 5
1.5 Computación personal, distribuida y cliente/servidor 5
1.6 Internet y World Wide Web 6
1.7 Lenguajes máquina, ensambladores y de alto nivel 6
1.8 Historia de C y C++ 7
1.9 Historia de Java 8
1.10 Bibliotecas de clases de Java 8
1.11 FORTRAN, COBOL, Pascal y Ada 9
1.12 BASIC, Visual Basic, Visual C++, C# y .NET 10
1.13 Entorno de desarrollo típico en Java 10
1.14 Generalidades acerca de Java y este libro 13
1.15 Prueba de una aplicación en Java 14
1.16 Ejemplo práctico de Ingeniería de Software: introducción a la tecnología de objetos y UML 19
1.17 Web 2.0 23
1.18 Tecnologías de software 24
1.19 Conclusión 25
1.20 Recursos Web

2 Introducción a las aplicaciones en Java 34
2.1 Introducción 35
2.2 Su primer programa en Java: imprimir una línea de texto 35
2.3 Modifi cación de nuestro primer programa en Java 41
2.4 Cómo mostrar texto con printf 43
2.5 Otra aplicación en Java: suma de enteros 44
2.6 Conceptos acerca de la memoria 48
2.7 Aritmética 49
2.8 Toma de decisiones: operadores de igualdad y relacionales 52
2.9 (Opcional) Ejemplo práctico de Ingeniería de Software: cómo examinar el documento
de requerimientos de un problema 56
2.10 Conclusión

3 Introducción a las clases y los objetos 75
3.1 Introducción 76
3.2 Clases, objetos, métodos y variables de instancia 76
viii Contenido
3.3 Declaración de una clase con un método e instanciamiento de un objeto de una clase 77
3.4 Declaración de un método con un parámetro 81
3.5 Variables de instancia, métodos establecer y métodos obtener 84
3.6 Comparación entre tipos primitivos y tipos por referencia 88
3.7 Inicialización de objetos mediante constructores 89
3.8 Números de punto fl otante y el tipo double 91
3.9 (Opcional) Ejemplo práctico de GUI y gráfi cos: uso de cuadros de diálogo 95
3.10 (Opcional) Ejemplo práctico de Ingeniería de Software: identifi cación de las clases en un
documento de

4 Instrucciones de control: parte 1 112
4.1 Introducción 113
4.2 Algoritmos 113
4.3 Seudocódigo 114
4.4 Estructuras de control 114
4.5 Instrucción de selección simple if 116
4.6 Instrucción de selección doble if...else 117
4.7 Instrucción de repetición while 121
4.8 Cómo formular algoritmos: repetición controlada por un contador 123
4.9 Cómo formular algoritmos: repetición controlada por un centinela 127
4.10 Cómo formular algoritmos: instrucciones de control anidadas 134
4.11 Operadores de asignación compuestos 138
4.12 Operadores de incremento y decremento 139
4.13 Tipos primitivos 142
4.14 (Opcional) Ejemplo práctico de GUI y gráfi cos: creación de dibujos simples 142
4.15 (Opcional) Ejemplo práctico de Ingeniería de Software: identifi cación de los atributos de las clases 146
4.16 Conclusión 150

5 Instrucciones de control: parte 2 164
5.1 Introducción 165
5.2 Fundamentos de la repetición controlada por contador 165
5.3 Instrucción de repetición for 167
5.4 Ejemplos sobre el uso de la instrucción for 171
5.5 Instrucción de repetición do...while 174
5.6 Instrucción de selección múltiple switch 176
5.7 Instrucciones break y continue 183
5.8 Operadores lógicos 185
5.9 Resumen sobre programación estructurada 190
5.10 (Opcional) Ejemplo práctico de GUI y gráfi cos: dibujo de rectángulos y óvalos 194
5.11 (Opcional) Ejemplo práctico de Ingeniería de Software: cómo identifi car los estados
y actividades de los objetos 197
5.12 Conclusión 200

6 Métodos: un análisis más detallado 211
6.1 Introducción 212
6.2 Módulos de programas en Java 212
6.3 Métodos static, campos static y la clase Math 214
6.4 Declaración de métodos con múltiples parámetros 216
6.5 Notas acerca de cómo declarar y utilizar los métodos 219
6.6 Pila de llamadas a los métodos y registros de activación 221
6.7 Promoción y conversión de argumentos 221
Contenido ix
6.8 Paquetes de la API de Java 222
6.9 Ejemplo práctico: generación de números aleatorios 224
6.9.1 Escalamiento y desplazamiento generalizados de números aleatorios 227
6.9.2 Repetitividad de números aleatorios para prueba y depuración 228
6.10 Ejemplo práctico: un juego de probabilidad (introducción a las enumeraciones) 228
6.11 Alcance de las declaraciones 232
6.12 Sobrecarga de métodos 235
6.13 (Opcional) Ejemplo práctico de GUI y gráfi cos: colores y fi guras rellenas 238
6.14 (Opcional) Ejemplo práctico de Ingeniería de Software: identifi cación de las operaciones
de las clases 241
6.15 Conclusión 246

7 Arreglos 260
7.1 Introducción 261
7.2 Arreglos 261
7.3 Declaración y creación de arreglos 262
7.4 Ejemplos acerca del uso de los arreglos 264
7.5 Ejemplo práctico: simulación para barajar y repartir cartas 272
7.6 Instrucción for mejorada 274
7.7 Paso de arreglos a los métodos 276
7.8 Ejemplo práctico: la clase LibroCalificaciones que usa un arreglo para
almacenar las califi caciones 279
7.9 Arreglos multidimensionales 284
7.10 Ejemplo práctico: la clase LibroCalificaciones que usa un arreglo bidimensional 288
7.11 Listas de argumentos de longitud variable 293
7.12 Uso de argumentos de línea de comandos 294
7.13 (Opcional) Ejemplo práctico de GUI y gráfi cos: cómo dibujar arcos 296
7.14 (Opcional) Ejemplo práctico de Ingeniería de Software: colaboración entre los objetos 299
7.15 Conclusión

8 Clases y objetos: un análisis más detallado 325
8.1 Introducción 326
8.2 Ejemplo práctico de la clase Tiempo 327
8.3 Control del acceso a los miembros 330
8.4 Referencias a los miembros del objeto actual mediante this 331
8.5 Ejemplo práctico de la clase Tiempo: constructores sobrecargados 333
8.6 Constructores predeterminados y sin argumentos 338
8.7 Observaciones acerca de los métodos Establecer y Obtener 338
8.8 Composición 340
8.9 Enumeraciones 342
8.10 Recolección de basura y el método finalize 345
8.11 Miembros de clase static 345
8.12 Declaración static import 350
8.13 Variables de instancia final 351
8.14 Reutilización de software 353
8.15 Abstracción de datos y encapsulamiento 354
8.16 Ejemplo práctico de la clase Tiempo: creación de paquetes 355
8.17 Acceso a paquetes 360
8.18 (Opcional) Ejemplo práctico de GUI y gráfi cos: uso de objetos con gráfi cos 361
8.19 (Opcional) Ejemplo práctico de Ingeniería de Software: inicio de la programación de las clases
del sistema ATM 364
8.20 Conclusión 369
x Contenido

9 Programación orientada a objetos: herencia 378
9.1 Introducción 379
9.2 Superclases y subclases 380
9.3 Miembros protected 382
9.4 Relación entre las superclases y las subclases 382
9.4.1 Creación y uso de una clase EmpleadoPorComision 383
9.4.2 Creación de una clase EmpleadoBaseMasComision sin usar la herencia 387
9.4.3 Creación de una jerarquía de herencia EmpleadoPorComision-
EmpleadoBaseMasComision 391
9.4.4 La jerarquía de herencia EmpleadoPorComision-EmpleadoBaseMasComision
mediante el uso de variables de instancia protected 394
9.4.5 La jerarquía de herencia EmpleadoPorComision-EmpleadoBaseMasComision
mediante el uso de variables de instancia private 399
9.5 Los constructores en las subclases 404
9.6 Ingeniería de software mediante la herencia 409
9.7 La clase object 410
9.8 (Opcional) Ejemplo práctico de GUI y gráfi cos: mostar texto e imágenes usando etiquetas 411
9.9 Conclusión

10 Programación orientada a objetos: polimorfi smo 417
10.1 Introducción 418
10.2 Ejemplos del polimorfi smo 419
10.3 Demostración del comportamiento polimórfi co 420
10.4 Clases y métodos abstractos 423
10.5 Ejemplo práctico: sistema de nómina utilizando polimorfi smo 425
10.5.1 Creación de la superclase abstracta Empleado 426
10.5.2 Creación de la subclase concreta EmpleadoAsalariado 426
10.5.3 Creación de la subclase concreta EmpleadoPorHoras 429
10.5.4 Creación de la subclase concreta EmpleadoPorComision 431
10.5.5 Creación de la subclase concreta indirecta EmpleadoBaseMasComision 432
10.5.6 Demostración del procesamiento polimórfi co, el operador instanceof y
la conversión descendente 433
10.5.7 Resumen de las asignaciones permitidas entre variables de la superclase y de la subclase 437
10.6 Métodos y clases final 438
10.7 Ejemplo práctico: creación y uso de interfaces 439
10.7.1 Desarrollo de una jerarquía PorPagar 440
10.7.2 Declaración de la interfaz PorPagar 441
10.7.3 Creación de la clase Factura 441
10.7.4 Modifi cación de la clase Empleado para implementar la interfaz PorPagar 443
10.7.5 Modifi cación de la clase EmpleadoAsalariado para usarla en la jerarquía PorPagar 445
10.7.6 Uso de la interfaz PorPagar para procesar objetos Factura y Empleado
mediante el polimorfi smo 446
10.7.7 Declaración de constantes con interfaces 448
10.7.8 Interfaces comunes de la API de Java 448
10.8 (Opcional) Ejemplo práctico de GUI y gráfi cos: realizar dibujos mediante el polimorfi smo 449
10.9 (Opcional) Ejemplo práctico de Ingeniería de Software: incorporación de la herencia en
el sistema ATM 451
10.10 Conclusión

11 Componentes de la GUI: parte 1 462
11.1 Introducción 463
11.2 Entrada/salida simple basada en GUI con JOptionPane 464
11.3 Generalidades de los componentes de Swing 467
11.4 Mostrar texto e imágenes en una ventana 469
11.5 Campos de texto y una introducción al manejo de eventos con clases anidadas 474
11.6 Tipos de eventos comunes de la GUI e interfaces de escucha 479
11.7 Cómo funciona el manejo de eventos 481
11.8 JButton 483
11.9 Botones que mantienen el estado 486
11.9.1 JCheckBox 486
11.9.2 JRadioButton 489
11.10 JComboBox y el uso de una clase interna anónima para el manejo de eventos 492
11.11 JList 495
11.12 Listas de selección múltiple 497
11.13 Manejo de eventos de ratón 500
11.14 Clases adaptadoras 504
11.15 Subclase de JPanel para dibujar con el ratón 507
11.16 Manejo de eventos de teclas 510
11.17 Administradores de esquemas 513
11.17.1 FlowLayout 514
11.17.2 BorderLayout 517
11.17.3 GridLayout 520
11.18 Uso de paneles para administrar esquemas más complejos 522
11.19 JTextArea 523
11.20 Conclusión 526

12 Gráfi cos y Java 2D™ 539
12.1 Introducción 540
12.2 Contextos y objetos de gráfi cos 542
12.3 Control de colores 542
12.4 Control de tipos de letra 548
12.5 Dibujo de líneas, rectángulos y óvalos 554
12.6 Dibujo de arcos 558
12.7 Dibujo de polígonos y polilíneas 560
12.8 La API Java 2D 563
12.9 Conclusión

13 Manejo de excepciones 578
13.1 Introducción 579
13.2 Generalidades acerca del manejo de excepciones 580
13.3 Ejemplo: división entre cero sin manejo de excepciones 580
13.4 Ejemplo: manejo de excepciones tipo ArithmeticException e InputMismatchException 582
13.5 Cuándo utilizar el manejo de excepciones 587
13.6 Jerarquía de excepciones en Java 587
13.7 Bloque finally 590
13.8 Limpieza de la pila 594
13.9 printStackTrace, getStackTrace y getMessage 595
13.10 Excepciones encadenadas 597
13.11 Declaración de nuevos tipos de excepciones 599
13.12 Precondiciones y poscondiciones 600
xii Contenido
13.13 Aserciones 601
13.14 Conclusión 602

14 Archivos y fl ujos 608
14.1 Introducción 609
14.2 Jerarquía de datos 610
14.3 Archivos y fl ujos 611
14.4 La clase File 613
14.5 Archivos de texto de acceso secuencial 617
14.5.1 Creación de un archivo de texto de acceso secuencial 617
14.5.2 Cómo leer datos de un archivo de texto de acceso secuencial 623
14.5.3 Ejemplo práctico: un programa de solicitud de crédito 625
14.5.4 Actualización de archivos de acceso secuencial 630
14.6 Serialización de objetos 630
14.6.1 Creación de un archivo de acceso secuencial mediante el uso de la serialización
de objetos 631
14.6.2 Lectura y deserialización de datos de un archivo de acceso secuencial 636
14.7 Clases adicionales de java.io 638
14.8 Abrir archivos con JFileChooser 640
14.9 Conclusión

15 Recursividad 653
15.1 Introducción 654
15.2 Conceptos de recursividad 655
15.3 Ejemplo de uso de recursividad: factoriales 655
15.4 Ejemplo de uso de recursividad: serie de Fibonacci 658
15.5 La recursividad y la pila de llamadas a métodos 661
15.6 Comparación entre recursividad e iteración 662
15.7 Las torres de Hanoi 664
15.8 Fractales 666
15.9 “Vuelta atrás” recursiva (backtracking) 676
15.10 Conclusión 676
15.11 Recursos en Internet y Web 676

16 Búsqueda y ordenamiento 685
16.1 Introducción 686
16.2 Algoritmos de búsqueda 687
16.2.1 Búsqueda lineal 687
16.2.2 Búsqueda binaria 690
16.3 Algoritmos de ordenamiento 695
16.3.1 Ordenamiento por selección 695
16.3.2 Ordenamiento por inserción 699
16.3.3 Ordenamiento por combinación 702
16.4 Invariantes 708
16.5 Conclusión 709

17 Estructuras de datos 714
17.1 Introducción 715
17.2 Clases de envoltura de tipos para los tipos primitivos 716
17.3 Autoboxing y autounboxing 716
Contenido xiii
17.4 Clases autorreferenciadas 717
17.5 Asignación dinámica de memoria 717
17.6 Listas enlazadas 718
17.7 Pilas 726
17.8 Colas 730
17.9 Árboles 733
17.10 Conclusión

18 Genéricos 761
18.1 Introducción 762
18.2 Motivación para los métodos genéricos 762
18.3 Métodos genéricos: implementación y traducción en tiempo de compilación 764
18.4 Cuestiones adicionales sobre la traducción en tiempo de compilación: métodos que utilizan
un parámetro de tipo como tipo de valor de retorno 767
18.5 Sobrecarga de métodos genéricos 770
18.6 Clases genéricas 770
18.7 Tipos crudos (raw) 779
18.8 Comodines en métodos que aceptan parámetros de tipo 783
18.9 Genéricos y herencia: observaciones 787
18.10 Conclusión 787
18.11 Recursos en Internet y Web 787

19 Colecciones 792
19.1 Introducción 793
19.2 Generalidades acerca de las colecciones 794
19.3 La clase Arrays 794
19.4 La interfaz Collection y la clase Collections 797
19.5 Listas 798
19.5.1 ArrayList e Iterator 799
19.5.2 LinkedList 800
19.5.3 Vector 805
19.6 Algoritmos de las colecciones 808
19.6.1 El algoritmo sort 809
19.6.2 El algoritmo shuffle 812
19.6.3 Los algoritmos reverse, fill, copy, max y min 815
19.6.4 El algoritmo binarySearch 816
19.6.5 Los algoritmos addAll, frequency y disjoint 818
19.7 La clase Stack del paquete java.util 820
19.8 La clase PriorityQueue y la interfaz Queue 822
19.9 Conjuntos 823
19.10 Mapas 826
19.11 La clase Properties 829
19.12 Colecciones sincronizadas 832
19.13 Colecciones no modifi cables 833
19.14 Implementaciones abstractas 834
19.15 Conclusión

20 Introducción a los applets de Java 841
20.1 Introducción 842
20.2 Applets de muestra incluidos en el JDK 842
20.3 Applet simple en Java: cómo dibujar una cadena 846
xiv Contenido
20.3.1 Cómo ejecutar un applet en el appletviewer 848
20.3.2 Ejecución de un applet en un explorador Web 850
20.4 Métodos del ciclo de vida de los applets 850
20.5 Cómo inicializar una variable de instancia con el método int 851
20.6 Modelo de seguridad “caja de arena” 853
20.7 Recursos en Internet y Web 853
20.8 Conclusión 854

21 Multimedia: applets y aplicaciones 858
21.1 Introducción 859
21.2 Cómo cargar, mostrar y escalar imágenes 860
21.3 Animación de una serie de imágenes 862
21.4 Mapas de imágenes 867
21.5 Carga y reproducción de clips de audio 869
21.6 Reproducción de video y otros medios con el Marco de trabajo de medios de Java 872
21.7 Conclusión 876
21.8 Recursos Web 876
22 Componentes de la GUI: parte 2 883

22.1 Introducción 884
22.2 JSlider 884
22.3 Ventanas: observaciones adicionales 888
22.4 Uso de menús con marcos 889
22.5 JPopupMenu 896
22.6 Apariencia visual adaptable 899
22.7 JDesktopPane y JInternalFrame 903
22.8 JTabbedPane 906
22.9 Administradores de esquemas: BoxLayout y GridBagLayout 908
22.10 Conclusión

23 Subprocesamiento múltiple 925
23.1 Introducción 926
23.2 Estados de los subprocesos: ciclo de vida de un subproceso 927
23.3 Prioridades y programación de subprocesos 929
23.4 Creación y ejecución de subprocesos 931
23.4.1 Objetos Runnable y la clase Thread 931
23.4.2 Administración de subprocesos con el marco de trabajo Executor 934
23.5 Sincronización de subprocesos 935
23.5.1 Cómo compartir datos sin sincronización 936
23.5.2 Cómo compartir datos con sincronización: hacer las operaciones atómicas 940
23.6 Relación productor/consumidor sin sincronización 943
23.7 Relación productor/consumidor: ArrayBlockingQueue 949
23.8 Relación productor/consumidor con sincronización 952
23.9 Relación productor/consumidor: búferes delimitados 957
23.10 Relación productor/consumidor: las interfaces Lock y Condition 964
23.11 Subprocesamiento múltiple con GUIs 970
23.11.1 Realización de cálculos en un subproceso trabajador 970
23.11.2 Procesamiento de resultados inmediatos con SwingWorker 976
23.12 Otras clases e interfaces en java.util.concurrent 982
23.13 Conclusión 983
Contenido xv

24 Redes 992
24.1 Introducción 993
24.2 Manipulación de URLs 994
24.3 Cómo leer un archivo en un servidor Web 998
24.4 Cómo establecer un servidor simple utilizando sockets de fl ujo 1001
24.5 Cómo establecer un cliente simple utilizando sockets de fl ujo 1003
24.6 Interacción entre cliente/servidor mediante conexiones de socket de fl ujo 1004
24.7 Interacción entre cliente/servidor sin conexión mediante datagramas 1014
24.8 Juego de Tres en raya (Gato) tipo cliente/servidor, utilizando un servidor con
subprocesamiento múltiple 1021
24.9 La seguridad y la red 1034
24.10 [Bono Web] Ejemplo práctico: servidor y cliente DeitelMessenger 1034
24.11 Conclusión

25 Acceso a bases de datos con JDBC 1041
25.1 Introducción 1042
25.2 Bases de datos relacionales 1043
25.3 Generalidades acerca de las bases de datos relacionales: la base de datos libros 1044
25.4 SQL 1047
25.4.1 Consulta básica SELECT 1047
25.4.2 La cláusula WHERE 1048
25.4.3 La cláusula ORDER BY 1050
25.4.4 Cómo fusionar datos de varias tablas: INNER JOIN 1051
25.4.5 La instrucción INSERT 1053
25.4.6 La instrucción UPDATE 1053
25.4.7 La instrucción DELETE 1054
25.5 Instrucciones para instalar MySQL y MySQL Connector/J 1055
25.6 Instrucciones para establecer una cuenta de usuario de MySQL 1056
25.7 Creación de la base de datos libros en MySQL 1057
25.8 Manipulación de bases de datos con JDBC 1057
25.8.1 Cómo conectarse y realizar consultas en una base de datos 1057
25.8.2 Consultas en la base de datos libros 1062
25.9 La interfaz RowSet 1073
25.10 Java DB/Apache Derby 1075
25.11 Objetos PreparedStatement 1076
25.12 Procedimientos almacenados 1090
25.13 Procesamiento de transacciones 1091
25.14 Conclusión 1091
25.15 Recursos Web y lecturas recomendadas

Los capítulos 26 a 30 así como los apéndices, los encontrará en el CD que acompaña este libro.

26 Aplicaciones Web: parte 1 1101
26.1 Introducción 1102
26.2 Transacciones HTTP simples 1103
26.3 Arquitectura de aplicaciones multinivel 1105
26.4 Tecnologías Web de Java 1106
26.4.1 Servlets 1106
26.4.2 JavaServer Pages 1106
26.4.3 JavaServer Faces 1107
26.4.4 Tecnologías Web en Java Studio Creator 2 1108
xvi Contenido
26.5 Creación y ejecución de una aplicación simple en Java Studio Creator 2 1108
26.5.1 Análisis de un archivo JSP 1109
26.5.2 Análisis de un archivo de bean de página 1111
26.5.3 Ciclo de vida del procesamiento de eventos 1115
26.5.4 Relación entre la JSP y los archivos de bean de página 1115
26.5.5 Análisis del XHTML generado por una aplicación Web de Java 1115
26.5.6 Creación de una aplicación Web en Java Studio Creator 2 1117
26.6 Componentes JSF 1123
26.6.1 Componentes de texto y gráfi cos 1123
26.6.2 Validación mediante los componentes de validación y los validadores personalizados 1128
26.7 Rastreo de sesiones 1137
26.7.1 Cookies 1138
26.7.2 Rastreo de sesiones con el objeto SessionBean 1150
26.8 Conclusión 1162
26.9 Recursos Web 1163

27 Aplicaciones Web: parte 2 1173
27.1 Introducción 1174
27.2 Acceso a bases de datos en las aplicaciones Web 1174
27.2.1 Creación de una aplicación Web que muestra datos de una base de datos 1175
27.2.2 Modifi cación del archivo de bean de página para la aplicación LibretaDirecciones 1183
27.3 Componentes JSF habilitados para Ajax 1185
27.3.1 Biblioteca de componentes Java BluePrints 1186
27.4 Autocomplete Text Field y formularios virtuales 1187
27.4.1 Confi guración de los formularios virtuales 1187
27.4.2 Archivo JSP con formularios virtuales y un AutoComplete Text Field 1189
27.4.3 Cómo proporcionar sugerencias para un AutoComplete Text Field 1192
27.5 Componente Map Viewer de Google Maps 1196
27.5.1 Cómo obtener una clave de la API Google Maps 1196
27.5.2 Cómo agregar un componente y un Map Viewer a una página 1196
27.5.3 Archivo JSP con un componente Map Viewer 1197
27.5.4 Bean de página que muestra un mapa en el componente Map Viewer 1201
27.6 Conclusión 1206
27.7 Recursos Web

28 Servicios Web JAX-WS, Web 2.0 y Mash-ups 1212
28.1 Introducción 1213
28.1.1 Descarga, instalación y confi guración de Netbeans 5.5 y Sun Java System
Application Server 1214
28.1.2 Centro de recursos de servicios Web y Centros de recursos sobre Java
en www.deitel.com 1215
28.2 Fundamentos de los servicios Web de Java 1215
28.3 Creación, publicación, prueba y descripción de un servicio Web 1216
28.3.1 Creación de un proyecto de aplicación Web y cómo agregar una clase de servicio
Web en Netbeans 1216
28.3.2 Defi nición del servicio Web EnteroEnorme en Netbeans 1217
28.3.3 Publicación del servicio Web EnteroEnorme desde Netbeans 1221
28.3.4 Prueba del servicio Web EnteroEnorme con la página Web Tester de
Sun Java System Application Server 1222
28.3.5 Descripción de un servicio Web con el Lenguaje de descripción de servicios
Web (WSDL) 1224
Contenido xvii
28.4 Cómo consumir un servicio Web 1224
28.4.1 Creación de un cliente para consumir el servicio Web EnteroEnorme 1225
28.4.2 Cómo consumir el servicio Web EnteroEnorme 1227
28.5 SOAP 1234
28.6 Rastreo de sesiones en los servicios Web 1234
28.6.1 Creación de un servicio Web Blackjack 1235
28.6.2 Cómo consumir el servicio Web Blackjack 1239
28.7 Cómo consumir un servicio Web controlado por base de datos desde una aplicación Web 1249
28.7.1 Confi guración de Java DB en Netbeans y creación de la base de datos Reservacion 1249
28.7.2 Creación de una aplicación Web para interactuar con el servicio Web Reservacion 1253
28.8 Cómo pasar un objeto de un tipo defi nido por el usuario a un servicio Web 1258
28.9 Conclusión 1266
28.10 Recursos Web

29 Salida con formato 1275
29.1 Introducción 1276
29.2 Flujos 1276
29.3 Aplicación de formato a la salida con printf 1276
29.4 Impresión de enteros 1277
29.5 Impresión de números de punto fl otante 1278
29.6 Impresión de cadenas y caracteres 1279
29.7 Impresión de fechas y horas 1280
29.8 Otros caracteres de conversión 1283
29.9 Impresión con anchuras de campo y precisiones 1284
29.10 Uso de banderas en la cadena de formato de printf 1285
29.11 Impresión con índices como argumentos 1289
29.12 Impresión de literales y secuencias de escape 1290
29.13 Aplicación de formato a la salida con la clase Formatter 1290
29.14 Conclusión 1291
30 Cadenas, caracteres y expresiones regulares 1297
30.1 Introducción 1298
30.2 Fundamentos de los caracteres y las cadenas 1298
30.3 La clase String 1299
30.3.1 Constructores de String 1299
30.3.2 Métodos length, charAt y getChars de String 1300
30.3.3 Comparación entre cadenas 1301
30.3.4 Localización de caracteres y subcadenas en las cadenas 1305
30.3.5 Extracción de subcadenas de las cadenas 1307
30.3.6 Concatenación de cadenas 1308
30.3.7 Métodos varios de String 1308
30.3.8 Método valueOf de String 1309
30.4 La clase StringBuilder 1311
30.4.1 Constructores de StringBuilder 1311
30.4.2 Métodos length, capacity, setLength y ensureCapacity de StringBuilder 1312
30.4.3 Métodos charAt, setCharAt, getChars y reverse de StringBuilder 1313
30.4.4 Métodos append de StringBuilder 1314
30.4.5 Métodos de inserción y eliminación de StringBuilder 1316
30.5 La clase Character 1317
30.6 La clase StringTokenizer 1321
30.7 Expresiones regulares, la clase Pattern y la clase Matcher 1322
30.8 Conclusión

DESCARGA Aquí el libro en pdf


Comentarios