ebook img

Programación en Java 2 PDF

422 Pages·2005·28.446 MB·Spanish
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Programación en Java 2

PROGRAMACIÓN EN JAVA 2 fflrJ PROGRAMACIÓN EN JAVA 2 Jesús Sánchez Allende Doctor Ingeniero de Telecomunicación Dpto. de Electrónica y Sistemas Universidad Alfonso X El Sabio Gabriel Huecas femández-Toribio Doctor Ingeniero de Telecomunicación Dpto. de Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid Baltasar fernández Manjón Doctor en Ciencias Físicas Dpto. de Sistemas Informáticos y Programación Universidad Complutense de Madrid Pilar Moreno Día:z Licenciada de Matemáticas Dpto. de Electrónica y Sistemas Universidad Alfonso X El Sabio Antonio José Reinoso Peinado Ingeniero en Informática Dpto. de Electrónica y Sistemas Universidad Alfonso X El Sabio Ricardo Sosa Sánchez-Cortés Ingeniero en Informática Dpto. de Electrónica y Sistemas Universidad Alfonso X El Sabio h l'so ..C. i.?.. . t' A1 o~ 2. . --:r-<r/'K MADRID• BOGOTÁ• BUENOS AIRES• CARACAS• GUATEMALA• LISBOA• MÉXICO NUEVA YORK• PANAMÁ• SAN JUAN• SANTIAGO• SÁO PAULO AUCKLAND • HAMBURGO •LONDRES• MILÁN• MONTREAL • NUEVA DELHI • PARÍS SAN FRANCISCO • SIDNEY • SINGAPUR • ST. LOUIS • TOKIO • TORONTO La información contenida en este libro procede de una obra original entregada por los autores. No obstante, McGraw-Hill/Interamericana de España no garantiza la exactitud o perfección de la información publicada. Tampoco asume ningún tipo de garantía sobre los contenidos y las opiniones vertidas en dichos textos. Este trabajo se publica con el reconocimiento expreso de que se está proporcionando una información, pero no tratando de prestar ningún tipo de servicio profesional o técnico. Los procedimientos y la información que se presentan en este libro tienen sólo la intención de servir como guía general. McGraw-Hill ha solicitado los permisos oportunos para la realización y el desarrollo de esta obra. Programación en Java 2. Serie Schaum No está permitida la reproducción total o parcial de este libro, ni su tratamiento informático, ni la transmisión de ninguna forma o por cualquier medio, ya sea electrónico, mecánico, por fotocopia, por registro u otros métodos, sin el permiso previo y por escrito de los titulares del Copyright. McGraw-Hm / lnteramericana de España S. A. U. DERECHOS RESERVADOS© 2005, respecto a la primera edición en español, por McGRAW-HILL/INTERAMERICANA DE ESPAÑA, S. A. U. Edificio Valrealty, 1ª planta Basauri, 17 28023 Aravaca (Madrid) www.mcgraw-hill.es [email protected] ISBN: 84-481-4591-7 Depósito legal: M. 24.998-2005 Editor: Carmelo Sánchez González Compuesto en: GAAP Editorial, S. L. lmpreso en: A mis padres y a mis chicas, por estar conmigo. JSA A mi mujer, Paqui y a mis hijos, Femando, Carmen y Raquel. GHFT A Pilar, Balti y Celia. BFM A mis padres. PMD A mis padres, Luis y María. AJRP A mis padres Gloria y Ricardo por apoyarme siempre en todo. RSS o ¿Qué es Java? 1. (cid:127)(cid:127)(cid:127) ma(cid:127)(cid:127) R(cid:127) ME(cid:127)(cid:127)(cid:127)(cid:127)(cid:127)(cid:127)(cid:127) B(cid:127)(cid:127)(cid:127) M(cid:127) B(cid:127)(cid:127)(cid:127) WDNSE(cid:127) R(cid:127)•(cid:127)(cid:127)(cid:127) MRM(cid:127)(cid:127) D(cid:127)(cid:127) a(cid:127) U(cid:127)(cid:127)(cid:127) RB(cid:127)(cid:127)(cid:127) m(cid:127)(cid:127) mnn 0.1 El lenguaje de programación Java y la plataforma Java ...................... . 1 0.2 Desarrollo de programas ...................................................................... . 2 0.3 Aspectos sobre cómo escribir los programas ....................................... . 2 0.4 Entornos de desarrollo ......................................................................... . 3 0.4.1 NetBeans (java.sun.com o www.netbeans.org) ....................... . 3 0.4.2 Eclipse (www.eclipse.org) ....................................................... . 4 0.4.3 BlueJ (www.bluej.org) ............................................................. . 6 0.4.4 JCreator LE (www.jcreator.com) ............................................ . 7 Introducción a la programación •• • • • ••• •• •• •• . . . •• • • • • •• • . . ••• •• •• • • •. .. 9 1.1 Estructura de un programa.................................................................... 9 1.2 Identificadores . .. .. . .. .. . .. .. ... . .. . .. .. .. .. .. . . .. . .. . .. . .. . . .. .. .. . . .. .. .. .. .. .. .. .. .. . . .. .. .. . .. . . . 1O 1.3 Tipos, variables y valores .. ................ ...................... ................... ........ .. 11 1.4 Expresiones........................................................................................... 13 1.5 Conversiones de tipo ............................................................................. 15 1.6 Enumerados........................................................................................... 15 l. 7 Petición de valores primitivos al usuario .............................................. 16 Problemas resueltos ...................... .. .......................................... ............ ............. 17 2.1 Estructura de una clase ....................................................................... .. 35 2.2 Atributos ............................................................................................... 36 2.3 Métodos ......................... ..................................................................... .. 37 2.4 Constructores ... ............. ...... ..... ............................................................. 38 Problemas resueltos ........................................................................................... 41 Ampliación de clases .....................................•..........•.... 67 6. 3 .1 Elementos de clase ( static) ... . .. ... .. .. ....... ... .. . .. ...... ... ....... .. ... . .. ..... ........ .. . 67 3.1.1 Valor inicial de atributos de clase............................................ 68 3.2 Derechos de acceso ............................................................................... 68 Contenido 3.3 Paquetes ................................................................................................ 69 3.3.1 Uso........................................................................................... 69 3.3.2 Nombres................................................................................... 69 3.4 Clases internas...................................................................................... 70 3.5 Importación estática de clases ..... .. ....... .. .. ...... .. ............ .. ........ .. .. ......... .. 71 3.6 Clases predefinidas ............................................................................... 72 3.6.1 Envoltorios............................................................................... 72 3.6.2 Math ........................................................................................ 74 3.6.3 String ....................................................................................... 74 Problemas resueltos ........................................................................................... 75 4 Estructuras de control .. 95 IJil •• l!l •• lilllllllllllllllllill'ilD(cid:127) ••m•a111111m•••m•n1111lllR(cid:127) ••····•ªMtllili11'11!4!1111S!ll!lllil 4.1 Estructuras de selección ........................................................................ 95 4.1.1 Estructura if .. . ............... .... ..... .. .... .. .... ..... .... .... .. .. ...... .. .. .. ...... .. . 95 4.1.2 Estructuraif-else:..................................................................... 95 4.1.3 Operador condicional............................................................... 96 4.1.4 Estructura switch ....... .... ...... ......... ..... ...... ...... .... .. .......... ........ .. 96 4.2 Estructuras de repetición....................................................................... 97 4.2.1 Estructura while ....................................................................... 97 4.2.2 Estructura do-while .................................................................. 98 4.2.3 Estructura for ........................................................................... 99 4.2.4 Uso de las estructuras de repetición......................................... 100 4.3 Estructuras de salto............................................................................... 100 4.3.1 Sentencia break........................................................................ 100 4.3.2 Sentenciacontinue ................................................................... 100 4.4 Excepciones.......................................................................................... 100 4.4.1 Captura.................................................................................... 100 4.4.2 Delegación............................................................................... 102 4.4.3 Definición de excepciones de usuario ...................................... 102 4.4.4 Lanzamiento de excepciones de usuario y redefinición ..... ....... 102 4.5 Aserciones............................................................................................. 103 4.5.1 Aserciones como comprobación de invariantes........................ 103 4.5.2 Aserciones como precondiciones ............................................. 103 4.5.3 Aserciones como postcondiciones ............................................ 104 4.5.4 Aserciones como invariantes.................................................... 104 Problemas resueltos ........................................................................................... 105 5.1 Composición ......................................................................................... 147 5.2 Herencia................................................................................................ 148 5.3 Compatibilidaddetipos ........................................................................ 149 5.4 Ámbitos y visibilidad ............................................................................ 149 5.5 Sobreescritura ....................................................................................... 150 5.6 Constructores........................................................................................ 150 5.7 Polimorfismo......................................................................................... 151 5.8 Herencia forzada y clases abstractas .................................................... 152 Problemas resueltos ........................................................................................... 153 Estructuras de almacenamiento ••••••••..••.•••••••.•..••.•••••.•••••• 185 6.1 Arrays ................................................................................................... 185 6.1.1 Declaración.............................................................................. 185 Contenido 6.1.2 Creación................................................................................... 185 6 .1. 3 Inicialización estática . .. . . .. .. .. ..... ... . .. .. .. .. ...... ..... ..... . . .. . .. .......... .. 186 6.1.4 Acceso a los valores................................................................. 186 6.1.5 Tamaño de un array ................................................................. 186 6.2 Arrays multidimensionales .................................................................... 186 6.2.1 Declaración y creación............................................................. 186 6.2.2 Acceso...................................................................................... 187 6.2.3 Tamaño de un array ................................................................. 187 6.2.4 Array de dos dimensiones no rectangulares............................. 187 6.3 API de manejo de arrays ....................................................................... 187 6.3.1 Uso con arrays de tipos primitivos........................................... 187 6.3.2 Uso con arrays de objetos........................................................ 188 6.4 Colecciones........................................................................................... 189 6.4.l ArrayListyLinkedList ............................................................ 190 6.4.2 HashSetyTreeSet.................................................................... 190 Problemas resueltos ................................................................ ........................... 193 CAPÍTULO 7 Entrada y salida 111a••·••11••·••111••11u1111••1111•m••······· ........ •••111•11••11uu1••••tU•r$· 229 ll!:l.®(cid:127) 7 .1 Concepto de flujo en Java ...... .. ....................... .. .................................... 229 7.2 Tipos de flujos....................................................................................... 229 7 .3 Leer y escribir en un archivo ........................................................... /;;,.}; i;!,30 7 .4 Filtros ...... .......... ....................... ......................... .......................... .......... 232 7 .5 Entrada desde teclado............................................................................ 233 7.6 La clase File.......................................................................................... 234 7. 7 Archivos de acceso aleatorio .............. .................................... ............... 235 7.8 Lectura y escritura de objetos............................................................... 236 Problemas resueltos ................................................................................ ., ........., ; 238 CAPÍTULO 8 Interfaces 2-7,5 1111111m1111111m111111 ill lllllll 111. 111111u1111111111 Slil 11111111111111111lll11111111DIII11111111 •••••• 11!1 !11(cid:127) ••••••• 11111 ••••••••• l!l:$1911:illll& 8.1 Definición y uso de interfaces ............................................................... 275 Problemas resueltos .... ........ ....... ........................................................................ 278 CAPÍTULO 9 9.1 Genéricos .............................................................................................. 301 9 .2 Definición de genéricos ........ ............ ............... ...................................... 301 9 .3 Herencia de genéricos y conversión de tipos ......................................... 302 9.4 Comodines............................................................................................. 302 9.5 Métodos genéricos................................................................................. 303 Problemas resueltos .... ............ ............ ............................................................... 305 CAPÍTULO 10 Interfaces gráficas de usuario con Swing ........................... 321 10.1 Creación de una interfaz gráfica ............. .............................................. 321 10.2 Tratamiento de eventos: El modelo de delegación................................. 321 10.2.1 Eventos, objetos fuente y objetos oyente................................ 322 10.3 Jerarquía y tipos de eventos ................... ................ ............................... 322 10.4 Clases oyentes y adaptadoras de eventos .............................................. 322 10.5 Contenedores y componentes en Java ................................................... 323 10.6 Componentes gráficos: Jerarquía y tipos .............................................. 323 10.6.1 Clases básicas.......................................................................... 324 10.6.2 Contenedores de alto nivel ....................................................... 324 10.6.3 Cuadros de diálogo estándar .................................................... 324 Contenido 10.6.4 Contenedores intermedios ........................................................ 326 10.6.5 Componentes atómicos ............................................................ 327 10.6.6 Otras clases gráficas de Swing ................................................ 331 10.7 Administradores de disposición o diseño (layout managers)................. 331 10.7.1 FlowLayout.............................................................................. 331 10.7.2 BoxLayout ............................................................................... 331 10.7.3 BorderLayout ........................................................................... 332 10.7.4 CardLayout .............................................................................. 332 10.7.5 GridLayout .............................................................................. 332 10.7.6 GridBagLayout ........................................................................ 332 Problemas resueltos ... ..................... ...... ............................................................. 333 CAPÍTULO 11 Applets ............................................................... s••••n••···· 381 11.1 Entorno y ciclo de vida de una applet ............................ ....................... 381 11.2 Creación de una applet ...... ............................................................... ..... 381 11.3 Clases Applet y JApplet .................... ............................... ................ ..... 382 11.4 HTML, XHTML y las applets: la marca <APPLET> y la marca <OBJECT> ....................... ..................... ............... .......... ..... 382 Problemas resueltos .. ......................... ...... .............................. .. ............. ........ ..... 386 APÉNDICE A Documentación del código 397 111lllllllilfllllll811lllll(cid:127) li(cid:127)(cid:127) IIIIIVIXilllllllllillfll!llllllllllll'll!l&l(cid:127)(cid:127) am•1111111111(cid:127) 11!lllllllllll'lilS81 A.1 Etiquetas y posición ....................... .................... .................... ........ ....... 398 A.2 Uso de las etiquetas............................................................................... 398 A.3 Orden de las etiquetas ................ ........................................................... 400 A.4 Ejemplo de documentación de una clase .......................................... ..... 400 APÉNDICE B Convenios de programación en Java .................................. 405 B .1 Estructura de un archivo fuente en Java ............................. ............. ..... 405 B.2 Sangrado y tamaño de las líneas........................................................... 406 B.3 Comentarios.......................................................................................... 407 B.4 Declaraciones........................................................................................ 408 B.5 Espacio en blanco ................................................................................. 408 B.6 Sentencias ............................................................................................. 409 B. 7 Elección de nombres ............................. ........................... ..................... 411 B.8 Prácticas de diseño................................................................................ 412 ¿Qué es Java? 0 .. 1 EL LENGUAJE DE PROGRAMACIÓN JAVA Y LA PLATAFORMA JAVA El lenguaje de programación Java es un lenguaje moderno, presentado por primera vez por Sun Microsystems en el segundo semestre de 1995. Desde el principio ganó adeptos rápidamente por muy diversas razones, una de las más importantes es su neutralidad respecto de la plataforma de ejecución lo que permite, entre otras cosas, añadir progra mas a una página Web. Pero quizá lo que más guste a los programadores son un par de aspectos que le hacen muy cómodo y agradable de usar para programar: '" La sencillez y elegancia de cómo se escriben los programas en Java. A ello se une que es un lenguaje orientado a objetos que evita muchas preocupaciones a los programadores. En el proceso de compilación se realizan multitud de comprobaciones que permiten eliminar muchos posibles errores posteriores. '" Las bibliotecas ya definidas que proporciona el lenguaje y que el programador puede utilizar sin tener que hacerlas de nuevo. La evolución de Java ha sido muy rápida. Desde que se hizo público el lenguaje y un primer entorno de desarrollo, el JDK (Java Development Kit), hasta el momento actual, la plataforma Java ha ido creciendo constantemente y a un ritmo cada vez mayor según se han ido incorporando un gran número de programadores de todo el mundo. Pero Java 2 no es sólo un lenguaje. Es una plataforma de desarrollo de programas que consta de: • Un lenguaje de programación: el lenguaje Java, del mismo nombre que la plataforma. • Un conjunto de bibliotecas estándar que se incluyen con la plataforma y que deben existir en cualquier entorno con Java. También se denomina Java Core. Estas bibliotecas comprenden: strings, procesos, entrada y salida, propiedades del sistema, fecha y hora, Applets, API de red, Internacionalización, Seguridad, Componentes, Serialización, acceso a bases de datos, etc. • Un conjunto de herramientas para el desarrollo de programas. Entre ellas cabe citar el compilador de Java a código de bytes, el generador de documentación, el depurador de programas en Java, etc. e Un entorno de ejecución cuyo principal componente es una máquina virtual para poder ejecutar los programas en código de bytes. La plataforma Java2 se puede utilizar desde distintos sistemas operativos, ejecutándose cada uno de ellos en el hardware correspondiente. (Véase Figura 0.1.)

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.