Publicado el 9 de Noviembre del 2018
5.676 visualizaciones desde el 9 de Noviembre del 2018
9,7 MB
766 paginas
Creado hace 14a (24/05/2010)
00FrontMatter(i-xxxiv).indd ii
00FrontMatter(i-xxxiv).indd ii
5/3/09 10:15:40
5/3/09 10:15:40
CON
Introducción a la programación
JAVA
00FrontMatter(i-xxxiv).indd i
00FrontMatter(i-xxxiv).indd i
5/3/09 10:15:37
5/3/09 10:15:37
00FrontMatter(i-xxxiv).indd ii
00FrontMatter(i-xxxiv).indd ii
5/3/09 10:15:40
5/3/09 10:15:40
CON
Introducción a la programación
JAVA
John S. Dean
Park University
Raymond H. Dean
University of Kansas
Revisión técnica:
Carlos Villegas Quezada
Universidad Iberoamericana,
Ciudad de México
MÉXICO • BOGOTÁ • BUENOS AIRES • CARACAS • GUATEMALA • MADRID
NUEVA YORK • SAN JUAN • SANTIAGO • SÃO PAULO • AUCKLAND • LONDRES • MILÁN
MONTREAL • NUEVA DELHI • SAN FRANCISCO • SINGAPUR • SAN LUIS • SIDNEY • TORONTO
00FrontMatter(i-xxxiv).indd iii
00FrontMatter(i-xxxiv).indd iii
5/3/09 10:15:40
5/3/09 10:15:40
Director Higher Education: Miguel Ángel Toledo Castellanos
Director editorial: Ricardo Alejandro del Bosque Alayón
Editor sponsor: Pablo Eduardo Roig Vázquez
Coordinadora editorial: Marcela Rocha Martínez
Editor de desarrollo: Edmundo Carlos Zúñiga Gutiérrez
Supervisor de producción: Zeferino García García
Traductor: Hugo Villagómez Velázquez
INTRODUCCIÓN A LA PROGRAMACIÓN CON JAVA
Primera edición
Prohibida la reproducción total o parcial de esta obra,
por cualquier medio, sin la autorización escrita del editor.
Educación
DERECHOS RESERVADOS © 2009 respecto a la primera edición en español por
McGRAW-HILL/INTERAMERICANA EDITORES, S.A. DE C.V.
A Subsidiary of The McGraw-Hill Companies, Inc.
Prolongación Paseo de la Reforma 1015, Torre A
Pisos 16 y 17, Colonia Desarrollo Santa Fe,
Delegación Álvaro Obregón
C.P. 01376, México, D. F.
Miembro de la Cámara Nacional de la Industria Editorial Mexicana, Reg. Núm. 736
ISBN: 978-970-10-7278-3
Traducido de la primera edición de: INTRODUCTION PROGRAMMING WITH JAVA:
A PROBLEM SOLVING APPROACH
Copyright © MMVIII, by The McGraw-Hill Companies, Inc. All rights reserved.
0-07-3047023
Impreso en México
0123456789
Printed in Mexico
098765432109
00FrontMatter(i-xxxiv).indd iv
00FrontMatter(i-xxxiv).indd iv
5/3/09 10:15:41
5/3/09 10:15:41
Dedicatoria
—A Stacy y Sarah
00FrontMatter(i-xxxiv).indd v
00FrontMatter(i-xxxiv).indd v
5/3/09 10:15:42
5/3/09 10:15:42
Acerca de los autores
John Dean es catedrático del Departamento de Información y Ciencias de la Computación en la Uni-
versidad Park. Obtuvo un grado de maestro en ciencias de la computación en la Universidad de Kan-
sas. Está certificado por Java Sun y ha trabajado en la industria como ingeniero de software y director
de proyectos, con especialidad en Java y varias tecnologías en la Web: JavaScript, JavaServer Pages y
servlets. Ha impartido un sinnúmero de cursos de ciencias de la computación, incluyendo programa-
ción con Java y programación con Java basada en la Web.
Raymond Dean es profesor emérito en ingeniería y ciencias de la computación en la Universidad de
Kansas. Obtuvo su grado de maestro en ciencias en el MIT y un doctorado en la Universidad de Prin-
ceton, y es miembro decano de la IEEE. Ha publicado numerosos artículos científicos y posee 21
patentes estadounidenses. Actualmente es investigador del programa Climate and Energy del Land
Institute, que reivindica la conservación detallada de la energía y el reemplazo del consumo de com-
bustibles de origen fósil y nuclear por energía eólica y almacenamiento de energía eléctrica.
vi
00FrontMatter(i-xxxiv).indd vi
00FrontMatter(i-xxxiv).indd vi
5/3/09 10:15:42
5/3/09 10:15:42
Contenido
Prólogo xi
Resumen del proyecto xxi
C A P Í T U L O 1
Introducción a las computadoras
y la programación 1
1.1. Introducción 1
1.2. Terminología de hardware 2
1.3. Desarrollo del programa 8
1.4. Código fuente 10
1.5. Compilación de código fuente
en código objeto 11
1.6. Portabilidad 11
1.7. Surgimiento de Java 13
1.8. Primer programa: Hola mundo 14
1.9. Apartado GUI: Hola mundo
(opcional) 18
C A P Í T U L O 2
Algoritmos y diseño 23
2.1. Introducción 23
2.2. Salida 24
2.3. Variables 25
2.4. Operadores y sentencias
de asignación 26
2.5. Entrada 26
2.6. Flujo de control y diagrama de fl ujo 27
2.7. Sentencias if 28
2.8. Bucles 32
2.9. Técnicas de terminación de un ciclo 34
2.10. Bucles anidados 37
2.11. Trazado 39
2.12. Otros formatos de seudocódigo
y aplicaciones 42
2.13. Resolución de problema: administración
de activos (opcional) 44
C A P Í T U L O 3
Fundamentos de Java 51
3.1. Introducción 52
3.2. Programa “Tengo un sueño” 52
3.3. Comentarios y legibilidad 52
3.4. El encabezado de la clase 54
3.5. El encabezado del método main 55
3.6. Paréntesis de llave 56
3.7. System.out.println 56
3.8. Compilación y ejecución 58
3.9. Identifi cadores 58
3.10. Variables 59
3.11. Sentencias de asignación 60
3.12. Sentencias de inicialización 61
3.13. Tipos de datos numéricos: int, long,
float, double 62
3.14. Constantes 64
3.15. Operadores aritméticos 67
3.16. Evaluación de expresiones y precedencia
de operadores 69
3.17. Más operadores: incremento, decremento
y asignación compuesta 71
3.18. Rastreo 73
3.19. Conversión de tipos 73
3.20. Tipo char y secuencias de escape 75
3.21. Variables primitivas versus variables
de referencia 78
3.22. Cadenas de caracteres 79
3.23. Entrada: la clase Scanner 83
3.24. Apartado GUI: entrada y salida con el objeto
JOptionPane (opcional) 87
C A P Í T U L O 4
Sentencias de control 97
4.1. Introducción 97
4.2. Condiciones y valores boolean 98
4.3. Sentencias if 99
4.4. Operador lógico && 102
4.5. Operador lógico || 105
4.6. Operador lógico ! 107
4.7. Sentencia switch 108
4.8. Ciclo while 112
4.9. Ciclo do 115
4.10. Ciclo for 116
4.11. Resolución del problema de qué
ciclo utilizar 120
4.12. Ciclos anidados 121
4.13. Variables boolean 123
4.14. Validación de entradas 125
4.15. Resolución de problemas con lógica
boolean (opcional) 127
vii
00FrontMatter(i-xxxiv).indd vii
00FrontMatter(i-xxxiv).indd vii
5/3/09 10:15:43
5/3/09 10:15:43
viii
Contenido
C A P Í T U L O 5
Utilización de métodos preconstruidos 137
5.1. Introducción 137
5.2. La biblioteca API 138
5.3. Clase Math 141
5.4. Clases envoltorio (wrapper) para tipos primitivos 146
5.5. Clase Character 149
5.6. Métodos de String 150
5.7. Salida formateada con el método printf 156
5.8. Resolución de problemas con números aleatorios
(opcional) 159
5.9. Apartado GUI: diseño de imágenes, líneas, rectángulos
y óvalos en applets de Java (opcional) 164
C A P Í T U L O 6
Programación orientada a objetos 176
6.1. Introducción 176
6.2. Introducción a la programación orientada
a objetos 177
6.3. Primera clase con POO 180
6.4. Clase controladora 183
6.5. Objeto llamado, referencia this 186
6.6. Variables de instancia 188
6.7. Rastreo de un programa con POO 190
6.8. Diagramas UML de clase 194
6.9. Variables locales 195
6.10. La sentencia return 198
6.11. Paso de argumentos 200
6.12. Métodos especializados: de acceso, de mutación
y boolean 202
6.13. Resolución de problemas con simulación
(opcional) 205
C A P Í T U L O 7
Programación orientada a objetos:
detalles adicionales 220
7.1. Introducción 220
7.2. Creación de objetos: un análisis detallado 221
7.3. Asignando una referencia 222
7.4. Objetos de prueba para igualdad 226
7.5. Paso de referencias como argumentos 230
7.6. Encadenamiento de llamadas a métodos 233
7.7. Métodos sobrecargados 235
7.8. Constructores 238
7.9. Constructores sobrecargados 244
7.10. Resolución de problemas con diversas clases 247
C A P Í T U L O 8
Ingeniería de software 263
8.1. Introducción 263
8.2. Convenciones de estilo para codifi car 264
8.3. Métodos de ayuda 272
8.4. Encapsulamiento (con variables de instancia
y variables locales) 274
8.5. Filosofía de diseño 277
8.6. Diseño arriba-abajo 278
8.7. Diseño ascendente 287
8.8. Diseño basado en casos 288
8.9. Mejoramiento iterativo 289
8.10. Método controlador de fusión en una clase
controlada 291
8.11. Acceso de variables de instancia sin la utilización
del this 292
8.12. Resolución de problemas con el API de la clase
Calendar (opcional) 294
8.13. Apartado GUI: resolución de problemas mediante
tarjetas CRC (opcional) 296
C A P Í T U L O 9
Clases con miembros de clase 308
9.1. Introducción 308
9.2. Variables de clase 309
9.3. Métodos de clase 311
9.4. Constantes nombradas 314
9.5. Escritura de su propia clase Utility 316
9.6. Utilización de miembros de clase en conjunción
con miembros de instancia 317
9.7. Resolución de problemas con miembros de clase
y miembros de instancia en una clase
de listas ligadas (opcional) 320
C A P Í T U L O 10
Arreglos y listas de arreglos 331
10.1. Introducción 331
10.2. Fundamentos de arreglos 332
10.3. Declaración y creación de arreglos 335
10.4. Propiedad length en un arreglo y arreglos
parcialmente llenos 337
10.5. Copia de un arreglo 339
10.6. Resolución de problemas mediante casos con
arreglos 341
10.7. Búsqueda de un arreglo 347
10.8. Ordenamiento de un arreglo 351
10.9. Arreglos de dos dimensiones 354
10.10. Arreglos de objetos 360
10.11. La clase ArrayList 364
00FrontMatter(i-xxxiv).indd viii
00FrontMatter(i-xxxiv).indd viii
5/3/09 10:15:45
5/3/09 10:15:45
Contenido
ix
10.12. Almacenamiento de primitivos en una
lista de arreglos 370
10.13. Ejemplo de lista de arreglo utilizando objetos
anónimos y el ciclo for-each 372
10.14. Lista de arreglo versus arreglos e
Comentarios de: Introducción a la programación con JAVA (0)
No hay comentarios