Ceballos: Java 2 - Lenguaje y Aplicaciones
Ceballos: Java 2 - Lenguaje y Aplicaciones
Lenguaje y aplicaciones
Fco. Javier Ceballos Sierra
Profesor titular de la
Escuela Politécnica Superior
Universidad de Alcalá
http://www.fjceballos.es
Java 2. Lenguaje y aplicaciones.
© Fco. Javier Ceballos Sierra
© De la edición: RA-MA 2006
MARCAS COMERCIALES: Las marcas de los productos citados en el contenido de este libro
(sean o no marcas registradas) pertenecen a sus respectivos propietarios. RA-MA no está
asociada a ningún producto o fabricante mencioado en la obra, los datos y los ejemplos
utilizados son ficticios salvo que se indique lo contrario.
Según lo dispuesto en el Código Penal vigente ninguna parte de este libro puede ser
reproducida, grabada en sistema de almacenamiento o transmitida en forma alguna ni
por cualquier procedimiento, ya sea electrónico, mecánico, reprográfico, magnético o
cualquier otro, sin autorización previa y por escrito de RA-MA; su contenido está protegido
por la Ley vigente que establece penas de prisión y/o multas a quienes intencionadamente,
reprodujeren o plagiaren, en todo o en parte, una obra literaria, artística o científica.
Editado por:
RA-MA Editorial
C/ Jarama, 3A, Polígono industrial Igarsa
28860 PARACUELLOS DEL JARAMA, Madrid
Teléfono: 91 658 42 80
Telefax: 91 662 81 39
Correo electrónico: [email protected]
Internet: www.ra-ma.es y www.ra-ma.com
ISBN: 84-7897-745-7
Depósito Legal: M-46224-2006
Autoedición: Fco. Javier Ceballos
Filmación e impresión: Albadalejo, S.L.
Impreso en España
Primera impresión: Noviembre 2006
CONTENIDO
PRÓLOGO............................................................................................................. XV
CARACTERES DE JAVA................................................................................. 53
TIPOS DE DATOS ............................................................................................ 54
LITERALES....................................................................................................... 55
Literales enteros ............................................................................................ 55
Literales reales............................................................................................... 56
Literales de un solo carácter .......................................................................... 57
Literales de cadenas de caracteres ................................................................. 57
IDENTIFICADORES......................................................................................... 58
PALABRAS CLAVE ......................................................................................... 58
DECLARACIÓN DE CONSTANTES SIMBÓLICAS ..................................... 59
¿Por qué utilizar constantes? ......................................................................... 60
VARIABLES...................................................................................................... 60
CONVERSIÓN ENTRE TIPOS DE DATOS .................................................... 62
OPERADORES.................................................................................................. 63
Operadores lógicos ........................................................................................ 63
Operadores unitarios...................................................................................... 64
Operadores a nivel de bits ............................................................................. 64
Operadores de asignación.............................................................................. 65
Operador condicional .................................................................................... 67
PRIORIDAD Y ORDEN DE EVALUACIÓN................................................... 68
EJERCICIOS RESUELTOS .............................................................................. 69
EJERCICIOS PROPUESTOS ............................................................................ 71
CONTENIDO IX
ENTRADA Y SALIDA...................................................................................... 95
Flujos de entrada ........................................................................................... 97
Flujos de salida.............................................................................................. 98
Excepciones................................................................................................... 98
Flujos estándar de E/S ................................................................................... 100
BufferedInputStream ................................................................................ 101
BufferedReader ........................................................................................ 101
PrintStream............................................................................................... 103
Trabajar con tipos de datos primitivos........................................................... 105
Clases que encapsulan los tipos primitivos .............................................. 106
Clase Leer...................................................................................................... 109
¿DÓNDE SE UBICAN LAS CLASES QUE DAN SOPORTE? ....................... 112
Variable CLASSPATH ................................................................................. 112
CARÁCTER FIN DE FICHERO ....................................................................... 113
CARACTERES \r\n............................................................................................ 115
ALTERNATIVA A LOS FLUJOS DE E/S ....................................................... 116
Entrada de datos ............................................................................................ 117
Salida con formato......................................................................................... 118
MÉTODOS MATEMÁTICOS........................................................................... 119
X JAVA 2. LENGUAJE Y APLICACIONES
APÉNDICES
Cuando Java se introdujo de forma importante, allá por 1995, fue cuando su
uso en el diseño de páginas Web revolucionó la naturaleza de éstas. ¿Recuerda?
Todo el mundo hablaba de applets, esos pequeños programas que se ejecutan en
el contexto de una página Web en cualquier ordenador, introduciendo animación y
efectos especiales. Y quizás, esta idea esté enmascarando que “Java” no sólo es
eso. Java está también disponible para desarrollar aplicaciones de uso general; es-
to es, como muchos lenguajes, permite trabajar con todo tipo de datos, crear es-
tructuras dinámicas, trabajar con ficheros, atacar a bases de datos, diseñar
interfaces gráficas de usuario, etc. Más aún, Java es un lenguaje simple, potente y
orientado a objetos. Su sintaxis incita al programador a generar programas modu-
lares y fácilmente mantenibles.
Este libro ha sido escrito con la versión 5.0 del J2SEDK (Java 2 Platform
Standard Edition Development Kit), lo que Sun Microsystems, introductora de es-
te lenguaje, denomina Java 2, y su propósito es ayudar al lector a aprender a pro-
gramar utilizando Java. Para ello, ¿qué debe hacer? Pues simplemente leer
ordenadamente los capítulos del libro, resolviendo cada uno de los ejemplos que
en ellos se detallan.
El autor considera importante no privar al lector de saber que Java aún pro-
porciona mucho más que lo aprendido con este libro. Por eso si quiere profundizar
más en este lenguaje le aconsejo mis otros libros titulados Java 2 - Curso de pro-
gramación y Java2 – Interfaces gráficas y aplicaciones para Internet.
XVI JAVA 2. LENGUAJE Y APLICACIONES
Agradecimientos
He recibido ayuda de algunas personas durante la preparación de este libro, y por
ello estoy francamente agradecido. También, expresar mi agradecimiento a Sun
Microsystems por poner a mi disposición en particular y de todos los lectores en
general, los productos que la creación y el estudio de esta obra requiere.
ENTORNO DE DESARROLLO
INTEGRADO PARA JAVA
Evidentemente, para poder escribir programas se necesita un entorno de desarro-
llo Java. Sun Microsystems, propietario de Java, proporciona uno de forma gratui-
ta, J2SE Development Kit 5.0 (JDK 5.0) para Microsoft Windows, en todas sus
versiones, y para Linux. En el capítulo 1 se explicó como obtenerlo en instalarlo.
Opcionalmente, puede instalar un entorno de desarrollo integrado (EDI) que
le facilite las tareas de creación de la interfaz gráfica de usuario, edición del códi-
go, compilación, ejecución y depuración, como por ejemplo: NetBeans de Sun
Microsystems. Para instalarlo, ejecute el fichero jdk-1_5_0-nb-5_0-win-ml.exe
desde el CD. Este paquete incluye el JDK 5.0, el EDI y, además, el servidor de
aplicaciones Tomcat 5. Esto es, instalando este paquete, no necesita instalar pre-
viamente J2SE Development Kit 5.0.
Beans que se presenta a continuación, esas rutas a las que nos referimos quedan
establecidas durante la instalación del mismo.
3. Escriba el nombre del proyecto (Project Name); en nuestro caso será Hola-
Mundo y, a continuación, seleccione la carpeta donde quiere guardarlo.
4. Asegúrese de que las casillas Set as Main Project (declararlo como proyecto
principal) y Create Main Class (crear clase principal) están marcadas.
Por ejemplo, para depurar una aplicación utilizando el depurador del entorno
de desarrollo NetBeans, debe establecer un punto de parada inicial. Para ello, haga
clic con el botón derecho del ratón sobre la sentencia a partir de la cual quiere
ejecutar el código de su aplicación paso a paso y ejecute la orden Toggle Break-
point (poner un punto de parada) del menú contextual que se visualiza, o haga clic
en la zona sombreada a su izquierda:
Después, ejecute la orden Run > Debug Main Project, o bien pulse la tecla F5
para iniciar la depuración. Continúe la ejecución paso a paso utilizando las órde-
nes del menú Run o los botones correspondientes de la barra de herramientas De-
bug (para saber el significado de cada botón, ponga el puntero del ratón sobre
cada uno de ellos).
De forma resumida, las órdenes disponibles para depurar una aplicación son
las siguientes:
Para ver los valores intermedios que van tomando las variables ponga el cur-
sor sobre ellas, o bien utilice las ventanas Watches, Local Variables, etc., del fon-
do del EDI. Para añadir o quitar ventanas ejecute la orden Window > Debuggin.
VARIABLE CLASSPATH
La opción –classpath del compilador debe incluir las rutas de todas las carpetas
donde se deben buscar las clases necesarias para compilar una aplicación. Algu-
nas de estas clases podrían, incluso, encontrarse empaquetadas en un fichero .jar.
1. Diríjase al panel del proyecto, haga clic con el botón derecho del ratón sobre
el nombre del mismo, y seleccione la orden Properties del menú contextual
que se visualiza. Se muestra el diálogo siguiente:
4. Una vez seleccionado el fichero que desea añadir, haga clic en el botón Add
Project JAR Files (añadir ficheros JAR al proyecto), y finalmente cierre el
diálogo. El fichero JAR seleccionado será añadido.
PROYECTOS
Un proyecto permite agrupar los ficheros requeridos para producir una aplicación
o un applet. Esto presenta ventajas como poder compilar todo el proyecto sin te-
ner que especificar los ficheros que incluye, especificar la clase principal del pro-
yecto, ver bajo la pestaña Project del explorador todos los ficheros que componen
el proyecto, configurar el entorno de desarrollo integrado (EDI) para cada proyec-
to, etc. De esto se deduce que para un determinado proyecto podemos configurar
un escenario particular que será guardado cuando se finalice la sesión, lo que
permitirá recuperarlo automáticamente la próxima vez que se cargue ese proyecto.
APÉNDICE A: ENTORNO DE DESARROLLO INTEGRADO PARA JAVA 351
Por ejemplo, según puede verse en la figura anterior, cuando haya escrito CA-
plicacion(). aparecerá una lista de los posibles métodos que pueden ser invocados;
seleccione el adecuado y pulse la tecla Entrar.
OBTENER AYUDA
La orden Javadoc Index Search del menú Tools (Mayúsculas+F1) permite obte-
ner ayuda acerca de múltiples temas. Pero si quiere obtener ayuda acerca de la bi-
blioteca de clases de Java (suponiendo que la ha instalado), es preciso que dicho
entorno tenga conocimiento de la ruta de acceso a la misma. Para ello, ejecute la
orden Java Platform Manager del menú Tools y asegúrese de que en la lista de
rutas mostrada en Javadoc hay una que hace referencia a la carpeta donde se en-
cuentra la ayuda mencionada; si no es así, añádala.
Después del proceso anterior, cuando pulse las teclas Mayúsculas+F1, se vi-
sualizará el panel que se muestra en la figura siguiente, donde podrá solicitar ayu-
da acerca de la clase que quiera. También puede dirigirse al editor de código,
colocar el cursor sobre el nombre de la clase, método, etc. de la cual quiere ayuda
y pulsar las teclas Mayúsculas+F1.
APÉNDICE A: ENTORNO DE DESARROLLO INTEGRADO PARA JAVA 353
AYUDA
En este libro se ha trabajado con los paquetes más comunes en Java y dentro de
cada paquete con las clases de uso más frecuente. Evidentemente, a medida que
vaya estudiando cada capítulo le van a surgir dudas y curiosidades de por qué esta
clase y no otra, o qué otros métodos tiene esta clase y, lógicamente, a muchas de
estas cuestiones no va a tener respuesta en el libro. Será consciente de que para
abarcar todo lo que se implementa en la biblioteca de Java harían falta varios li-
bros. Por eso este apéndice. Debe acostumbrarse a manejar la ayuda que propor-
ciona Java para tratar de dar solución a las dudas que se le puedan ir planteando.
El aspecto de una ventana de ayuda de Java es el siguiente:
356 JAVA 2. LENGUAJE Y APLICACIONES
index.html
PLATAFORMAS UNIX/LINUX
Aunque este libro se ha escrito sobre una plataforma Windows, todos los ejerci-
cios han sido probados también en una plataforma Linux; concretamente en un
ordenador personal con el sistema operativo Linux. Quiere esto decir, que si su
caso es este último, recurra al CD-ROM del libro o a la dirección de Internet de
Sun Microsystems, http://www.sun.com, para obtener el JDK que debe instalar. A
continuación provéase del editor o del entorno de trabajo de su gusto (en el CD
encontrará NetBeans+J2SEDK) y siga el libro normalmente.
$ export JDK_HOME=/usr/java/jdk1.5.0_09
$ export PATH=$PATH:$JDK_HOME/bin