Programacion Orientada A Objetos 1ra Edición
Programacion Orientada A Objetos 1ra Edición
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
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
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
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
XII
Contenido
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.
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.
• Lógica de programación,
Efraín M. Oviedo Regino
• Seguridad informática,
Álvaro Gómez Vieites
• Fundamentos de la prospectiva en
sistemas de información,
Víctor Bañuls y José Salmerón
• Hidráulica de ríos,
Tomás Ochoa
• 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.
-
sos multitarea, comunicaciones en red, manejo de multimedia y carga di-
námica de clases.
conceptos presentados.
ISBN 978-958-648-796-2