Publicado el 15 de Enero del 2017
2.023 visualizaciones desde el 15 de Enero del 2017
4,1 MB
269 paginas
Creado hace 12a (01/02/2012)
2
Esta obra de Óscar Belmonte et al. está bajo una licencia Creative
Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported
Índice general
1. Introducción
1.1. Origen del lenguaje de programación Java . . . . . . . . . . . . .
1.2. Característica de Java . . . . . . . . . . . . . . . . . . . . . . . .
1.3. El entorno de desarrollo integrado Eclipse . . . . . . . . . . . . .
13
13
14
15
1.3.1. Principales características del entorno de desarrollo Eclipse 16
1.3.2. Descarga e instalación de Eclipse . . . . . . . . . . . . . .
16
16
1.3.3. Configurando el aspecto de Eclipse: Perspectivas y Vistas
18
1.3.4. El primer ejemplo . . . . . . . . . . . . . . . . . . . . . .
21
1.4. Herramientas de desarrollo . . . . . . . . . . . . . . . . . . . . . .
. .
22
1.4.1. Añadiendo nueva funcionalidad a Eclipse: los plug-ins
2. Clases
2.3. Tipos de datos en Java.
2.1. Definición de una clase . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Miembros de una clase . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1. Atributos de una clase . . . . . . . . . . . . . . . . . . . .
2.2.2. Métodos de una clase.
. . . . . . . . . . . . . . . . . . . .
2.2.3. Constructores.
. . . . . . . . . . . . . . . . . . . . . . . .
2.2.4. Sobrecarga de métodos y constructores . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
2.3.1. Arrays de datos en Java. . . . . . . . . . . . . . . . . . . .
2.4. Estructuras de control. . . . . . . . . . . . . . . . . . . . . . . . .
2.4.1. Estructuras de control de repetición. . . . . . . . . . . . .
2.4.2. Estructuras de control de selección. . . . . . . . . . . . . .
2.5. Modificadores de acceso. . . . . . . . . . . . . . . . . . . . . . . .
2.6. Modificadores static y final.
. . . . . . . . . . . . . . . . . . .
2.7. El recolector de basura.
. . . . . . . . . . . . . . . . . . . . . . .
2.8. Finalización.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9. Comentarios. Comentarios de documentación. . . . . . . . . . . .
3. Herencia e Interfaces
3.1. Herencia.
3.2. Extensión de una clase.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
3.2.1. Sobrescribir atributos.
3.2.2. Sobrescribir métodos.
. . . . . . . . . . . . . . . . . . . .
3.2.3. La palabra reservada super. . . . . . . . . . . . . . . . . .
3.2.4. El constructor por defecto y la clase Object.
. . . . . . .
. . . . . . . . . . . . . . . . . .
3.2.5. El operador instanceof.
3.2.6. El modificador final.
. . . . . . . . . . . . . . . . . . . .
23
24
25
25
26
28
32
33
34
36
37
39
40
42
43
44
45
51
52
52
54
56
59
59
60
61
3
4
ÍNDICE GENERAL
3.2.7. Métodos static. . . . . . . . . . . . . . . . . . . . . . . .
3.3. Clases abstractas. . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.
Interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5. Enumeraciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6. Paquetes en Java. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
3.7. Clases e interface anidados
4. Subversion
4.1. ¿Qué es un sistema de control de versiones? . . . . . . . . . . . .
4.2. Principales características de Subversion . . . . . . . . . . . . . .
4.3. Creación de un repositorio . . . . . . . . . . . . . . . . . . . . . .
4.4. Trabajo con repositorios . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
4.4.1. Obteniendo información del repositorio
Integración con Eclipse . . . . . . . . . . . . . . . . . . . . . . . .
4.5.
5. Excepciones
5.1. ¿Qué es una excepción? . . . . . . . . . . . . . . . . . . . . . . .
5.1.1. Tipos de excepciones . . . . . . . . . . . . . . . . . . . . .
5.2. Cómo se gestiona una excepción . . . . . . . . . . . . . . . . . .
5.3. Creación de excepciones propias . . . . . . . . . . . . . . . . . . .
62
63
65
68
69
71
75
76
76
77
78
82
84
87
87
88
88
91
6. Pruebas unitarias con JUnit
6.1.1. Principios FIRST para el diseño de pruebas unitarias
93
94
6.1. ¿Qué son las pruebas unitarias? . . . . . . . . . . . . . . . . . . .
94
. .
95
6.2. Pruebas unitarias con JUnit . . . . . . . . . . . . . . . . . . . . .
95
6.2.1. Creación de clases de prueba . . . . . . . . . . . . . . . .
96
6.2.2. La anotación @Test . . . . . . . . . . . . . . . . . . . . .
98
6.2.3. Las anotaciones @Before y @After . . . . . . . . . . . . .
6.2.4. Las anotaciones @BeforeClass y @AfterClass . . . . . .
99
6.2.5. Pruebas con batería de datos de entrada . . . . . . . . . . 100
. . . . . . . 101
6.2.6. Ejecutar varias clases de prueba. Test Suites
. . . . . . . . . . . . . . . . . . . . . . 102
6.3.1. EclEmma y su plug-in para Eclipse . . . . . . . . . . . . . 103
6.3. Cobertura de las pruebas
7. Entrada y Salida
105
7.1. Flujos (Streams)
. . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.2. Flujos de bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
7.3. Flujos de caracteres
. . . . . . . . . . . . . . . . . . . . . . . . . 108
7.4. Conexión entre flujos de bytes y de caracteres . . . . . . . . . . . 109
. . . . . . . . . . . . . . 110
7.5. El sistema de ficheros y flujos a ficheros
. . . . . . . . . . . . . . . . . . . . 110
. . . . . . . . . . . . . . . . . . . . . . . 110
7.6. Serialización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.5.1. El sistema de ficheros
7.5.2. Flujos a ficheros
8. Algunas clases de utilidad del paquete estándar
117
8.1. La clase Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8.2. Trabajo con cadenas de caracteres
. . . . . . . . . . . . . . . . . 120
8.2.1. La clase String . . . . . . . . . . . . . . . . . . . . . . . 120
8.2.2. Las clases StringBuffer y StringBuilder . . . . . . . . 121
8.3. Clases recubridoras . . . . . . . . . . . . . . . . . . . . . . . . . . 122
ÍNDICE GENERAL
5
8.4. Colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.5. Trabajo con fechas . . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.5.1. La clase Date . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.5.2. Las clases Calendar y GregorianCalendar . . . . . . . . 129
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.6.1. La clase Math . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.6.2. La clase Random . . . . . . . . . . . . . . . . . . . . . . . 130
8.6. Matemáticas
9. Programación con genéricos
133
9.1. ¿Qué son los tipos de datos genéricos? . . . . . . . . . . . . . . . 133
9.2. Métodos genéricos
. . . . . . . . . . . . . . . . . . . . . . . . . . 134
9.3. Clases genéricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
9.4. Ampliación del tipo genérico
. . . . . . . . . . . . . . . . . . . . 138
9.4.1. Tipos genéricos con límite superior . . . . . . . . . . . . . 139
9.4.2. Comodines
. . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.5. Borrado de tipo y compatibilidad con código heredado . . . . . . 141
10.Construcción de proyectos con Ant
143
10.1. Qué es Ant
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
10.2. Definición del proyecto . . . . . . . . . . . . . . . . . . . . . . . . 144
10.2.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
10.2.2. Tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
10.3. Compilar el código fuente de un proyecto . . . . . . . . . . . . . 146
10.4. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
10.5. Estructuras path-like . . . . . . . . . . . . . . . . . . . . . . . . 147
10.6. Ejecución de las Pruebas Unitarias . . . . . . . . . . . . . . . . . 148
10.7. Generación de la documentación . . . . . . . . . . . . . . . . . . 150
10.8. Empaquetado de la aplicación . . . . . . . . . . . . . . . . . . . . 151
10.9. Ejecución y limpieza . . . . . . . . . . . . . . . . . . . . . . . . . 151
11.Interfaces gráficas de usuario
153
11.1. APIs para la programación de interfaces gráficos de usuario en
Java: AWT y Swing . . . . . . . . . . . . . . . . . . . . . . . . . 154
11.2. Contenedores y Componentes . . . . . . . . . . . . . . . . . . . . 155
11.3. Gestores de Aspecto (Layout Managers) . . . . . . . . . . . . . . 155
11.4. Detección de eventos: Escuchadores . . . . . . . . . . . . . . . . . 157
11.5. Algunos componentes Swing . . . . . . . . . . . . . . . . . . . . . 162
11.5.1. JLabel, muestra texto o iconos . . . . . . . . . . . . . . . 162
11.5.2. JButton, botones que el usuario puede pulsar . . . . . . . 162
11.5.3. JTextField, campos de introducción de texto . . . . . . . 163
11.5.4. JRadioButton, botones de opciones
. . . . . . . . . . . . 164
11.5.5. JCheckBox, botones de selección múltiple . . . . . . . . . 166
11.5.6. JList, listas de selección . . . . . . . . . . . . . . . . . . 166
11.6. El patrón de diseño Modelo/Vista/Controlador . . . . . . . . . . 168
12.Applets
173
12.1. ¿Qué son los Applets? . . . . . . . . . . . . . . . . . . . . . . . . 173
12.2. Ciclo de vida de un Applet
. . . . . . . . . . . . . . . . . . . . . 174
12.3. Código HTML para contener un Applet . . . . . . . . . . . . . . 175
12.4. Lectura de parámetros de la página HTML . . . . . . . . . . . . 176
6
ÍNDICE GENERAL
. . . . . . . . . . . 176
12.5. Convertir una aplicación Swing en un Applet
12.6. Comunicación entre Applets . . . . . . . . . . . . . . . . . . . . . 177
13.Control de errores con MyLyn y Bugzilla
181
13.1. Sistema de control de tareas MyLyn . . . . . . . . . . . . . . . . 182
13.1.1. Cual es el objetivo de MyLyn . . . . . . . . . . . . . . . . 182
13.1.2. Trabajar con MyLyn . . . . . . . . . . . . . . . . . . . . . 182
13.2. Sistema de gestión de errores Bugzilla . . . . . . . . . . . . . . . 188
13.2.1. Cual es el objetivo de Bugzilla . . . . . . . . . . . . . . . 188
13.2.2. Instalación de Bugzilla . . . . . . . . . . . . . . . . . .
Comentarios de: Desarrollo de Proyectos informáticos con Tecnología Java (0)
No hay comentarios