Programación Dirigida a Objetos (Ing.Informática) – Práctica 3 - 1 PRACTICA 3. Ejercicios de programación en JAVA Objetivos Toma de contacto con el lenguaje Java. Observar cómo están construidas dos clases sencillas, una que trabaja con números y otra con cadenas de caracteres y vectores. Duración 1 sesión Compilador de Java Dado que se trata de una práctica de introducción a Java se ha preferido no introducir herramientas y entornos complejos. Se propone usar un compilador para Java para el sistema operativo DOS, en concreto el entorno jdk1.0.2. o bien un compilador para Java para el sistema operativo LINUX. jdk para DOS Este entorno está disponible en las páginas web de la asignatura o en el directorio: p:\lsi\pdo\JavaDOS Para usarlo debe modificarse el path del sistema escribiendo en DOS la instrucción siguiente: PATH = p:\lsi\pdo\JavaDOS\bin; %PATH% Editor: Para escribir y modificar el código de los programas .java usar un editor típico de DOS como EDIT, NOTEPAD, ... El alumno deberá guardar los programas creados en una carpeta en su cuenta. Compilador Para compilar los programas .java se deberá ejecutar la instrucción: javac nombreClase.java Ejecutar La ejecución de un programa que se ha compilado de forma satisfactoria (no hay errores y se crea un fichero .class) se hará con la instrucción: java nombreClase jdk para Linux: Programación Dirigida a Objetos (Ing.Informática) – Práctica 3 - 2 Hay varios entornos disponibles en [unidad]:\lsi\software Para usarlo modifique el fichero pjava (en Practica3Ejercicios.zip), que es el que se encarga de configurar la variable path del entorno para que se ejecute el compilador y el intérprete. Cópielo en su directorio de trabajo, modifíquelo de acuerdo con la versión de JAVA que elija y antes de comenzar la práctica ejecute la orden: source pjava También puede incluir las órdenes necesarias en .login Contenidos En la página web de la asignatura podrá encontrar el archivo Practica3Ejercicios.zip donde se han introducido varios ficheros con los que va a trabajar. Si el código que figura en los archivos no se compila, revise la sintaxis. Algunas versiones no necesitan ciertos puntos y comas. La siguiente dirección de Internet ofrece información sobre paquetes, clases y métodos que puede resultar útil para conocer el lenguaje Java. http://java.sun.com/reference/api/index.html . Seleccione la versión standard que le interese. 1. Observe los ficheros Saludo.java, SaludoApp.java. Compílelos y abra Saludo.htm con un navegador. Revise el código de Saludo.htm y deduzca la diferencia entre un programa JAVA y un Applet. Ejecute appletViewer. En el directorio demo de la instalación de JAVA tiene numerosos ejemplos de Applets. 2. Ejecutar el programa asociado a la clase Numero.java. Estudiar el código y analizar las instrucciones que se usan (llamadas a métodos, estructura del programa, instrucciones de control,...). Observe el sangrado del programa y la sintaxis de los comentarios. Añadir un nuevo método que permita multiplicar números. Probar los cambios realizados y el nuevo método. 3. Considere si el método contarHasta de Numero está situado correctamente en esta clase. Para ello considere si es adecuado escribir en pantalla desde este método. ¿Debería plantearse una alternativa? 4. Considere el ámbito de la variable de instancia num. ¿Lo considera adecuado? 5. Escriba un método en Numero para convertir el receptor a su expresión en romano. Modifique el main de la clase que contenga ese método para que se pueda probar. 6. Estudie la clase Cadena. Considere si el método verVector debe estar implementado en la clase. ¿Debería plantearse una alternativa? 7. Implemente un método de Cadena que concatene el receptor y un argumento. 8. Escriba un método en Cadena que devuelva la cadena invertida. Programación Dirigida a Objetos (Ing.Informática) – Práctica 3 - 3 CUESTIONARIO PRACTICAS 2 y 3 Se trata de comparar lo aprendido sobre los lenguajes en las dos prácticas anteriores: 1) ¿Señale cinco diferencias importantes entre Smalltalk y JAVA? 2) ¿Señale cinco semejanzas importantes entre Smalltalk y JAVA? 3) La cuestión más interesante deriva del tratamiento de las clases en Smalltalk y en JAVA. ¿Por qué no se ha seguido en las dos prácticas anteriores la misma filosofía de extensión de las clases? es decir: - ¿Por qué en Java se han creado dos clases que repiten métodos ya existentes en otras? - ¿Habría alguna forma de extender las clases ya existentes en java.lang?