0% encontró este documento útil (0 votos)
118 vistas17 páginas

Programacion Orientada A Objetos 1ra Edición

El documento presenta un resumen biográfico de Héctor Arturo Flórez Fernández, incluyendo sus estudios universitarios y experiencia académica. Además, provee una tabla de contenido detallada para el libro "Programación Orientada a Objetos usando Java".

Cargado por

giba269
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
118 vistas17 páginas

Programacion Orientada A Objetos 1ra Edición

El documento presenta un resumen biográfico de Héctor Arturo Flórez Fernández, incluyendo sus estudios universitarios y experiencia académica. Además, provee una tabla de contenido detallada para el libro "Programación Orientada a Objetos usando Java".

Cargado por

giba269
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 17

HÉCTOR ARTURO FLÓREZ FERNÁNDEZ

Ingeniero electrónico e
ingeniero de sistemas de la
Universidad El Bosque; magíster
en Ciencias de la Información
y las Comunicaciones de la
Universidad Distrital Francisco
José de Caldas; especialista
en Alta Gerencia y magíster
en Gestión de Organizaciones
de la Universidad Militar
Nueva Granada; estudiante de
Doctorado en Ingeniería en la
Universidad de los Andes.
Programación
Orientada a
Objetos
usando Java

Héctor Arturo Flórez Fernández


Tabla de contenido
Programación Orientada a Objetos usando Java III
Índice de Figuras XI
Índice de Tablas XIV
Introducción XV

Capítulo 1
Introducción al lenguaje de programación Java 1
1.1 Compilador de Java 3
1.2 Java Virtual Machine 4
1.3 Garbage collector 4
1.4 Variables Path y Classpath 4
1.5 Primer programa en Java 6

Capítulo 2
Conceptos básicos de programación 7
2.1 Operadores 7
2.1.1 Operadores aritméticos 7
2.1.2 Operadores de asignación 8
2.1.3 Operadores lógicos 9
2.1.4 Operadores de comparación 11
2.1.5 Operadores a nivel de bits 11
2.2 Tipos primitivos de datos 12
2.2.1 Conversión de tipos primitivos de datos 13
2.3 Estructuras de programación 14
2.3.1 Sentencias 14
2.3.2 Comentarios 14
2.3.3 Estructura de condición if 15
2.3.4 Estructura de condición if else 16
2.3.5 Estructura de condición if else if 17
2.3.6 Estructura de condición switch case 18
2.3.7 Estructura de repetición while 19
2.3.8 Estructura de repetición for 20
2.3.9 Estructura de repetición do while 20
2.4 Secuencias de escape 21
2.5 Ejercicios propuestos 22

Capítulo 3
Conceptos básicos de programación orientada a objetos 23
3.1 Paquete 23
3.2 Clase 25
3.2.1 Atributos 26
Programación Orientada a Objetos usando Java Héctor Arturo Flórez Fernández

3.2.2 Visibilidad 26
3.2.3 Métodos 26
3.2.4 Encapsulamiento 27
3.2.5 Apuntador this 28
3.3 Objeto 28
3.4 Sentencia static 28
3.5 Sentencia final 29
3.6 Clasificación de métodos 30
3.7 Sobrecarga de métodos 33
3.8 Recursividad 33
3.9 Bajo acoplamiento 35
3.10 Alta cohesión 36
3.11 Manejo de excepciones 37
3.11.1 Estructura try, catch y finally 37
3.11.2 Sentencia throws 38
3.11.3 Excepciones estándar del API de Java 39
3.11.4 Creación de excepciones en Java 40
3.12 Ejercicios propuestos 41

Capítulo 4
Clases de utilidad en Java 43
4.1 Clase String 43
4.2 Clase Integer 48
4.3 Clase Boolean 51
4.4 Clase Math 52
4.5 Clase Date 56
4.6 Clase StringTokenizer 58
4.7 Clase BigInteger 59
4.8 Ejercicios propuestos 62

Capítulo 5
Entrada y salida estándar 63
5.1 Clase System 63
5.2 Clase InputStream 64
5.3 Clase PrintStream 65
5.4 Clase BufferedReader 66
5.5 Clase Scanner 68
5.6 Ejercicios propuestos 71

Capítulo 6
Arreglos, matrices y colecciones 73
6.1 Arreglos 73
6.1.1 Cálculo de promedio en un arreglo 74
6.1.2 Búsqueda lineal 75
6.1.3 Búsqueda binaria 77

VI
Contenido

6.1.4 Ordenamiento de un arreglo de números 78


6.2 Matrices 81
6.2.1 Cálculo de la traspuesta de una matriz 82
6.2.2 Multiplicación de matrices 83
6.3 Clase Vector 85
6.4 Clase ArrayList 89
6.5 Clase Arrays 92
6.6 Clase HashTable 96
6.7 Interfaz Iterator 98
6.8 Iteración de colecciones mediante ciclo for 101
6.9 Ejercicios propuestos 102

Capítulo 7
Escritura y lectura de archivos 103
7.1 Clase File 103
7.2 Archivos secuenciales 106
7.2.1 Escritura en archivo secuencial 107
7.2.2 Lectura en archivo secuencial 108
7.3 Archivos serializables 109
7.3.1 Escritura en archivo serializable 111
7.3.2 Lectura en archivo serializable 113
7.4 Archivos Properties 116
7.5 Ejercicios propuestos 117

Capítulo 8
Herencia y polimorfismo 119
8.1 Herencia 119
8.1.1 Sentencia extends 121
8.1.2 Sentencia super 122
8.1.3 Sobre-escritura de métodos 123
8.1.4 Clases abstractas 124
8.1.5 Interfaces 128
8.2 Polimorfismo 132
8.3 Ejercicios propuestos 139

Capítulo 9
Documentación con Javadoc 141
9.1 Documentación de código fuente 142
9.2 Resultados de Javadoc 143

Capítulo 10
Desarrollo orientado a arquitecturas 151
10.1 Arquitectura de tres capas 151
10.2 Arquitectura multicapa 156

VII
Programación Orientada a Objetos usando Java Héctor Arturo Flórez Fernández

Capítulo 11
Interfaz gráfica de usuario (GUI) 159
11.2 Contenedores 163
11.2.1 JFrame 163
11.2.2 JInternalFrame 165
11.2.3 JPanel 168
11.2.4 JTabbedPane 169
11.3 Componentes 171
11.3.1 JButton 172
11.3.2 JTextField 172
11.3.3 JLabel 172
11.3.4 JRadioButton 173
11.3.5 JCheckBox 173
11.3.6 JTextArea 174
11.3.7 JList 174
11.3.8 JComboBox 178
11.3.9 JTable 180
11.4 Cuadros de diálogo 184
11.4.1 JOptionPane 184
11.4.2 JFileChooser 189
11.5 Layout 195
11.5.1 AbsoluteLayout 195
11.5.2 BorderLayout 198
11.5.3 FlowLayout 201
11.5.4 GridLayout 203
11.6 Formularios 206
11.7 Manejo de eventos 220
11.7.1 ActionListener 220
11.7.2 KeyListener 220
11.7.3 FocusListener 221
11.7.4 MouseListener 222
11.7.5 MouseMotionListener 223
11.8 Menús 224
11.8.1 JMenuBar 225
11.8.2 JMenu, JMenuItem y JMenuSeparator 225
11.8.3 JCheckBoxMenuItem y JRadioButtonMenuItem 229
11.8.4 JPopUpMenu 232
11.9 Applets 236
11.10 Ejercicios propuestos 242

Capítulo 12
Gráficos 243
12.1 Clase Graphics 245

VIII
Contenido

12.1.1 Formas de Graphics 245


12.1.2 Paneles estáticos y dinámicos 251
12.2 Gráficas de señales 256
12.3 Clase Graphics2D 265
12.3.1 Degradado 265
12.3.2 Transparencia 267
12.3.3 Translación y rotación 269
12.4 Gráficas estadísticas (Chart) 271
12.4.1 Diagramas de torta 272
12.4.2 Diagramas de líneas, área y barras 277
12.4.3 Histogramas 284
12.4.4 Diagramas polares 286
12.5 Ejercicios propuestos 288

Capítulo 13
Acceso a bases de datos 289
13.1 Conexión a base de datos 289
13.2 DAO (Data Access Object) 292
13.3 Ejercicios propuestos 310

Capítulo 14
Modelo Vista Controlador 313
14.1 Patrón observador 314
14.2 Ejemplo de patrón MVC 315
14.3 Ejercicios propuestos 329

Capítulo 15
Procesos multitarea 331
15.1 Creación de hilos 333
15.1.1 Creación de hilos mediante la clase Thread 333
15.1.2 Creación de hilos mediante la interfaz Runnable 336
15.2 Agrupamiento de hilos 339
15.3 Sincronización 339
15.4 Temporizadores 344
15.5 Ejercicios propuestos 346

Capítulo 16
Comunicaciones en red 347
16.1 Modelo Cliente Servidor 347
16.2 Socket y ServerSocket 347
16.3 Chat 354
16.3.1 Prueba de chat 362
16.4 Ejercicios propuestos 368

IX
Programación Orientada a Objetos usando Java Héctor Arturo Flórez Fernández

Capítulo 17
Multimedia 369
17.1 Captura de vídeo 369
17.2 Captura de audio 373

Capítulo 18
Carga dinámica de clases (Reflection) 375
18.1 Carga dinámica mediante librerías 380
18.2 Ejercicios propuestos 387

Bibliografía 389

Glosario 391

X
Contenido

Índice de Figuras
Figura 1. Representación de funcionamiento de recursividad 35
Figura 2. Jerarquía simplificada de clases derivadas de Throwable 40
Figura 3. Representación de un arreglo en Java 74
Figura 4. Representación del algoritmo de ordenamiento de burbuja 79
Figura 5. Representación de una matriz en Java 81
Figura 6. Representación de multiplicación de dos matrices 83
Figura 7. Jerarquía de herencia de personal académico 120
Figura 8. Jerarquía de herencia de figuras geométricas 121
Figura 9. Jerarquía de herencia de Cuadrado y Cubo 123
Figura 10. Jerarquía de herencia de Figuras Geométricas 133
Figura 11. Javadoc. Jerarquía de paquetes 146
Figura 12. Javadoc. Documentación de clase abstracta 147
Figura 13. Javadoc. Documentación de clase que hereda
de clase abstracta 148
Figura 14. Javadoc. Documentación de métodos de clase 149
Figura 15. Arquitectura de tres capas 152
Figura 16. Implementación basada en paquetes de
arquitectura de tres capas 154
Figura 17. Configuración de Build Path 155
Figura 18. Implementación basada en proyectos
de arquitectura de tres capas 156
Figura 19. Arquitectura multicapa usando AJAX y ORM 157
Figura 20. Jerarquía de herencia de los componentes de Swing 160
Figura 21. JFrame 164
Figura 22. JInternalFrame 167
Figura 23. JPanel 169
Figura 24. JTabbedPane 171
Figura 25. JList 177
Figura 26. JComboBox 179
Figura 27. JTable 183
Figura 28. JTable con JScrollPane 183
Figura 29. JTable ordenado 184
Figura 30. JOptionPane. Cuadro de mensaje de información 185
Figura 31. JOptionPane. Cuadro de mensaje de error 186
Figura 32. JOptionPane. Cuadro de mensaje de advertencia 186
Figura 33. JOptionPane. Cuadro de mensaje de confirmación 187
Figura 34. JOptionPane. Cuadro de mensaje de entrada de información 187
Figura 35. JOptionPane. Cuadro de mensaje de opción con botones 188
Figura 36. JOptionPane. Cuadro de mensaje de opción con comboBox 188
Figura 37. JFileChooser. Cuadro de diálogo para guardar archivo 189

XI
Programación Orientada a Objetos usando Java Héctor Arturo Flórez Fernández

Figura 38. JFileChooser. Cuadro de diálogo para abrir archivo 190


Figura 39. JFileChooser. Cuadro de diálogo para
abrir archivo con ruta relativa 191
Figura 40. JFileChooser utilizando FileFilter 193
Figura 41. JFileChooser utilizando múltiples FileFilter 195
Figura 42. Absolute Layout 198
Figura 43. Border Layout 201
Figura 44. Flow Layout 203
Figura 45. Grid Layout 205
Figura 46. Ejemplo de Formulario. Panel datos básicos 209
Figura 47. Ejemplo de Formulario. Panel datos de contacto 210
Figura 48. Ejemplo de Formulario. Panel datos de ubicación 212
Figura 49. Ejemplo de Formulario. Panel pasatiempos 214
Figura 50. Ejemplo de Formulario. Panel botones 215
Figura 51. Diseño de Formulario 219
Figura 52. JMenuBar, JMenu y JMenuItem 229
Figura 53. JMenuBar, JCheckBoxMenuItem y JRadioButtonMenuItem 232
Figura 54. PopUpMenu 234
Figura 55. Applet Viewer 235
Figura 56. Applet con componentes 237
Figura 57. Applet con componentes y cuadro de diálogo 238
Figura 58. Applet publicado en página web 239
Figura 59. Applet publicado en página web con cuadro de diálogo 239
Figura 60. Coordenadas gráficas 245
Figura 61. Formas de Graphics 251
Figura 62. Gráfica con cuadrícula estática 253
Figura 64. Dibujo de la senal Seno 264
Figura 65. Dibujo de la senal Coseno 265
Figura 66. Degradado con Graphics2D 267
Figura 67. Transparencia con Graphics2D 269
Figura 68. Translación y rotación con Graphics2D 271
Figura 69. Referenced Libraries para JFreeChart 272
Figura 70. Pie Chart 2D 275
Figura 71. Pie Chart 2D exportado como jpg 275
Figura 72. Pie Chart 3D 277
Figura 73. Line Chart 2D 279
Figura 74. Line Chart 2D Ampliado 280
Figura 75. Area Chart 2D 282
Figura 76. Bar Chart 3D 284
Figura 77. Histograma 286
Figura 78. Polar Chart 288
Figura 79. Frame de gestión de productos 301
Figura 80. Frame de agregar productos 304
Figura 81. Frame de consultar productos 307

XII
Contenido

Figura 82. Frame de buscar productos 309


Figura 83. Frame de buscar productos con filtro 310
Figura 84. Modelo Vista Controlador 314
Figura 85. Diagrama de clases del juego Pacman basado en MVC 315
Figura 86. Juego Pacman basado en MVC 328
Figura 87. Juego Pacman basado en MVC 329
Figura 88. Conexión cliente uno de chat 363
Figura 89. Conexión cliente dos de chat 364
Figura 90. Conexión cliente tres de chat 365
Figura 91. Envío de mensaje de cliente uno de chat 366
Figura 92. Envío de mensaje de cliente dos de chat 367
Figura 93. Proyectos de ejemplo para cargar con URLClassLoader 380

XIII
Índice de Tablas
Tabla 1. Operadores aritméticos 8
Tabla 2. Operadores de asignación 8
Tabla 3. Tabla de verdad de la operación lógica NOT 9
Tabla 4. Tabla de verdad de la operación lógica AND 9
Tabla 5. Tabla de verdad de la operación lógica OR 10
Tabla 6. Tabla de verdad de la operación lógica XOR 10
Tabla 7. Operadores lógicos 10
Tabla 8. Operadores de comparación 11
Tabla 9. Operadores a nivel de bits 11
Tabla 10. Tipos primitivos de datos 12
Tabla 11. Secuencias de escape 21
Tabla 12. Paquetes básicos del API de Java 24
Tabla 13. Métodos principales de la clase String 44
Tabla 14. Métodos principales de la clase Integer 48
Tabla 15. Métodos principales de la clase Boolean 51
Tabla 16. Atributos de la clase Math 52
Tabla 17. Métodos principales de la clase Math 52
Tabla 18. Métodos principales de la clase Date 57
Tabla 19. Métodos principales de la clase StringTokenizer 58
Tabla 20. Métodos principales de la clase BigInteger 60
Tabla 21. Atributos de la clase System 63
Tabla 22. Métodos principales de la clase InputStream 64
Tabla 23. Métodos principales de la clase PrintStream 66
Tabla 24. Métodos principales de la clase BufferedReader 66
Tabla 25. Métodos principales de la clase Scanner 68
Tabla 26. Métodos principales de la clase Vector 85
Tabla 27. Métodos principales de la clase ArrayList 89
Tabla 28. Métodos principales de la clase Arrays 92
Tabla 29. Métodos principales de la clase HashTable 96
Tabla 30. Métodos principales de la interfaz Iterator 98
Tabla 31. Métodos principales de la clase File 104
Tabla 32. Métodos principales de la clase Component 161
Introducción
El libro Programación Orientada a Objetos usando Java ofrece al
lector una exposición clara y suficiente de los conceptos básicos
de programación orientada a objetos y desarrollo de aplicaciones
mediante el lenguaje de programación Java.

El documento expone con una gran cantidad de ejemplos y


demostraciones, las diferentes características de la Programación
Orientada a Objetos (POO), y su uso, mediante el lenguaje Java,
además de orientar el desarrollo mediante arquitecturas, patrones
y buenas prácticas en el desarrollo de aplicaciones.

Aquí se ofrecen explicaciones de conceptos básicos de


programación y conceptos de programación orientada a objetos;
del desarrollo orientado a objetos con base en arquitectura de tres
capas, con acceso a repositorios de datos mediante archivos planos,
serializables y bases de datos; conceptos básicos de computación
gráfica, patrones de diseño, procesos multitarea, comunicaciones
en red, captura de vídeo mediante API de multimedia, carga
dinámica de clases y librerías, entre otros.

XV
CAPÍTULO 1

Introducción al lenguaje de
programación Java
Java fue creado en 1991 por Sun Microsystems con el fin de elaborar
un lenguaje de programación destinado a electrodomésticos.
Debido a la existencia de distintos tipos de procesadores y a
los continuos cambios, se generó la necesidad de hacer una
herramienta independiente de la clase de procesador. Entonces,
Sun Microsystems creó una aplicación neutra que no dependía del
tipo de electrodoméstico. Esta aplicación se ejecutaba a través de
una máquina hipotética o virtual denominada “Java Virtual Machine,
JVM” o máquina virtual de Java. La JVM interpretaba el código neutro
convirtiéndolo a código ensamblador que podía ser interpretado por
el procesador utilizado.

A finales de 1995, Java fue introducido como lenguaje de programación


para computadores. La versión Java 1.1, apareció a principios de
1997 mejorando sustancialmente la versión original del lenguaje.
La versión Java 1.2, aparece más tarde y fue renombrada a Java 2,
a finales de 1998.La Java 1.5 se presenta en 2005. Actualmente se
desarrolla sobre la versión Java 1.6 a partir de 2006.

Al desarrollar en Java, cualquier aplicación, se cuenta con un gran


número de clases que hacen parte del lenguaje de Java conocido
como “API o Application Programming Interface”. El API de Java se
organiza por paquetes que hacen referencia a contenedores de clases.
La funcionalidad de cada concepto lo proveen las respectivas clases.
Otros títulos de interés:

• Lógica de programación,
Efraín M. Oviedo Regino

• Redes locales (nivel básico),


María Ángeles González Pérez

• Seguridad informática,
Álvaro Gómez Vieites

• Fundamentos de la prospectiva en
sistemas de información,
Víctor Bañuls y José Salmerón

necesita saber sobre el software


libre,
Jorge E. Prieto H.

• Hidráulica de ríos,
Tomás Ochoa

• Diseño geométrico de carreteras,


James Cárdenas Grisales

• Geometría descriptiva,
Germán Valencia García
Programación
Orientada a
Objetos
usando Java
La siguiente obra presenta al lector, material concerniente al paradigma
de Programación Orientada a Objetos, POO, mediante el lenguaje de pro-
gramación Java. Así mismo, provee información acerca de los conceptos
básicos de programación e historia del lenguaje Java.

En dieciocho capítulos describe la introducción al lenguaje de programa-


ción Java, conceptos fundamentales de programación, conceptos fun-
damentales de programación orientada a objetos, clases de utilidad del
lenguaje Java, entrada y salida estándar, colecciones, manejo de archivos,

mediante JavaDoc, desarrollo de aplicaciones orientadas a arquitecturas,

-
sos multitarea, comunicaciones en red, manejo de multimedia y carga di-
námica de clases.

Cada capítulo cuenta con un conjunto de problemas propuestos con el

conceptos presentados.

Colección: Ingeniería y Arquitectura


Área: Informática

ISBN 978-958-648-796-2

También podría gustarte