Actualizado el 21 de Marzo del 2018 (Publicado el 26 de Enero del 2018)
45.069 visualizaciones desde el 26 de Enero del 2018
34,0 MB
958 paginas
Creado hace 20a (20/03/2005)
Piensa
Piensa en Java
Bruce Eckel
Traducción:
Jorge González Barturen
Facultad de Ingeniería
Universidad de Deusto
Revisión técnica:
Javier Parra Fuente
Ricardo Lozano Quesada
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería de Software
Universidad Pontijicia de Salamanca en Madrid
Coordinación general y revisión técnica:
Luis Joyanes Aguilar
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería de Software
Universidad Pontificia de Salamanca en Madrid
Madrid México Santafé de Bogotá Buenos Aires Caracas Lima Montevideo
San Juan San José Santiago Sao Paulo White Plains
atos de catalogación bibliográfica
i
Bruce Eckel
PIENSA EN JAVA
Segunda edición
PEARSON EDUCACIÓN, S.A. Madrid, 2002
ISBN: 84-205-3 192-8
Materia: Informática 68 1.3
Formato 195 x 250
Páginas: 960
No está permitida la reproducción total o parcial de esta obra
ni su tratamiento o transmisión por cualquier medio o método
sin autorización escrita de la Editorial.
DERECHOS RESERVADOS
O 2002 respecto a la segunda edición en español por:
PEARSON EDUCACI~N, S.A.
Núñez de Balboa, 120
28006 Madrid
Bruce Eckel
PIENSA EN JAVA, segunda edición.
ISBN: 84-205-3192-8
Depósito Legal: M.4.162-2003
Última reimpresión, 2003
PRENTICE HALL es un sello editorial autorizado de PEARSON EDUCACIÓN, S.A.
Traducido de:
Thinking in JAVA, Second Edition by Bruce Eckel.
Copyright O 2000, Al1 Rights Reserved. Published by arrangement with the original publisher,
PRENTICE HALL, INC., a Pearson Education Company.
ISBN: 0- 13-027363-5
Edición en espuñol:
Equipo editorial:
Editor: Andrés Otero
Asistente editorial: Ana Isabel García
Equipo de producción:
Director: José A. Clares
Técnico: Diego Marín
Diseño de cubierta: Mario Guindel, Lía Sáenz y Begoña Pérez
Compo\ición: COMPOMAR. S.L.
Impreso por: LAVEL, S. A.
IMPRESO EN ESPANA - PRINTED IN SPAIN
Este libro ha sido impreso con papel y tintas ecológicos
A la persona que, incluso en este momento, está creando el próximo
gran lenguaje de programación.
@ Indice de contenido
ElCDROM
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Prólogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Prólogo a la 2." edición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
Java2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
xxv
Prólogo a la edición en español . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
El libro como referencia obligada a Java
xxvii
El libro como formación integral de programador . . . . . . . . . . . . . . . . . . . . . . . xxvii
Recursos gratuitos en línea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviii
Unas palabras todavía más elogiosas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviii
Comentarios de los lectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix
Introducción .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Prerrequisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxv
AprendiendoJava
xxxvi
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxvi
Documentación en línea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxvii ...
Capítulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxviii
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlii
CD ROM Multimedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliii
Códigofuente
xliii
xlv
Versiones de Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlv
Seminarios y mi papel como mentor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlvi
Errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlvi
Nota sobre el diseño de la portada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlvi
Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xlvii
xlix
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Estándares de codificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. .
Colaboradores Internet
vi¡¡
Piensa en Java
1: Introducción a los objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
El progreso de la abstracción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Todo objeto tiene una interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La implementación oculta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reutilizar la implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Herencia: reutilizar la interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La relación es-un frente a la relación es-como-un . . . . . . . . . . . . . . . . . . . . . . . .
Objetos intercambiables con polimorfismo . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Localización de objetos y longevidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Colecciones e iteradores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La jerarquía de raíz única . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliotecas de colecciones y soporte al fácil manejo de colecciones . . . . . . . . .
El dilema de las labores del hogar: ¿quién limpia la casa? . . . . . . . . . . . . . . . . .
Manejo de excepciones: tratar con errores . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multihilo
Persistencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
JavaeInternet
Clases base abstractas e interfaces
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
lQuéeslaWeb?
Programación en el lado del cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programación en el lado del servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Un ruedo separado: las aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Análisisydiseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fase O: Elaborar un plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fase 1: ¿Qué estamos construyendo? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fase 2: ¿Cómo construirlo? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fase 3: Construir el núcleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fase 4: Iterar los casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fase5:Evolución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Los planes merecen la pena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programación extrema
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Escritura de las pruebas en primer lugar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programación a pares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PorquéJavatieneéxito
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Los sistemas son más fáciles de expresar y entender . . . . . . . . . . . . . . . . . . . .
Ventajas máximas con las bibliotecas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Manejo de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programación a lo grande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Estrategias para la transición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Guías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Obstáculosdegestión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
davafrenteaC++? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
índice de contenido
2:Todoesunobjeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
Los objetos se manipulan mediante referencias
. . . . . . . . . . . . . . . . . . . . . . . . . . .
Comentarios de: Piensa en Java (1)