Download manual del uso
Document related concepts
no text concepts found
Transcript
Guión 1 Herramienta DrJava Noviembre de 2005 Fundamentos de la Programación Curso 2005/2006 Índice 1. Introducción 5 2. Descarga. Requisitos del sistema 5 3. Ejecución 5 4. Edición de código 4.1. Panel de definiciones . . . . . . . . . . . . . . . . . . . . . 4.2. Panel de archivo(s) . . . . . . . . . . . . . . . . . . . . . . . 5 6 7 5. Creación de proyectos 8 6. Panel de interacción 10 7. Compilación 12 8. Depuración 12 9. Documentación 12 10. Apéndice: configuración 12 Fundamentos de la Programación 1. Herramienta DrJava Introducción DrJava es un entorno de programación para Java, especialmente pensado para ayudar a los estudiantes a comprender los aspectos relacionados con los principios de la orientación a objetos. No se trata de un entorno completo de desarrollo. Una de sus principales ventajas radica en la existencia de una ventana de interacción, que permite probar en vivo y en directo la validez de ciertas sentencias. La principal idea subyacente a DrJava es facilitar al máximo su uso, ya que pretende ayudar todo lo posible a quienes aprenden el lenguaje Java de programación. 2. Descarga. Requisitos del sistema La página principal de DrJava es http://drjava.org. Ahı́ pueden encontrarse varias versiones de esta herramienta. Para cada una de ellas se diferencian las dedicadas a Linux (Jar file), Windows y MacOS. La versión instalada en el aula de prácticas es la correspondiente s a Linux, y se trata de un archivo jar, que puede ejecutarse directamente mediante el programa java. Sin embargo, para Windows se trata de un archivo ejecutable usual. 3. Ejecución En las aulas de prácticas el archivo descargado se encuentra almacenado en el directorio /usr/local. Se trata del archivo drjava-stable20050814-2234.jar. La forma de ejecutar la herramienta es mediante el siguiente comando: java -jar /usr/local/drjava-stable-20050814-2234.jar En caso de tener ya creado el archivo java de la clase con la que trabajar, también puede ejecutarse para empezar a trabajar de forma directa con ella (supongamos que el archivo creado con la clase a editar se denomina Prueba.java): java -jar /usr/local/drjava-stable-20050814-2234.jar Prueba.java En Windows simplementa basta con hacer doble clic sobre el archivo ejecutable correspondiente. 4. Edición de código El elemento central de la DrJava es un editor de texto, con todas las herramientas convencionales de este tipo de herramientas. Quizás una de 5 5 Fundamentos de la Programación Herramienta DrJava las más atractivas sea la presentación del texto coloreado, según la sintaxis del lenguaje Java: de esta forma, las palabras reservadas se colorearán de una forma, los comentarios de otra, etc. La Figura 1 muestra una vista general de DrJava. Figura 1: Vista general de DrJava Iremos describiendo una a una sus componentes. 4.1. Panel de definiciones El panel de definiciones es la ventana principal de DrJava, donde se muestra el código actualmente editado. A medida que se va escribiendo el editor ayuda de diversas formas: Coloreado de palabras según la sintaxis. DrJava colorea de distinta forma las palabras que se van tecleando, de forma que se ponga de manifiesto la estructura del programa. Los comentarios se muestran en color verde, las palabras reservadas (como class, void, static, etc) en color azul, las cadenas de caracteres en rojo y los caracteres en morado. Para cualquier otro texto se usará el color negro. 6 6 Fundamentos de la Programación Herramienta DrJava Indentación automática. La clave de la indentación en Java es el uso del tabulador. En lugar de insertar un tabulador o espacios en blanco, al pulsar sobre el tabulador se producirá la correcta indentación de todo el código. Por defecto, se emplean dos espacios en blanco para cada nuevo nivel de indentación, y esta será la opción que se use. Este será el estándar de presentación que se use, a todos los efectos, en la entrega de las prácticas de la asignatura. Emparejamiento de paréntesis y llaves. De forma automática, DrJava resalta la sección contenida entre paréntesis y llaves, ayudando ası́ a controlar que su inserción y cierre se corresponden de forma adecuada. Introducción de comentarios. DrJava ayuda a que la introducción de comentarios al código se haga de la forma más sencilla posible. En los comentarios multilı́nea (aquellos que comienzan por /* y terminan por */) DrJava inserta el carácter * al producirse un salto de lı́nea. Incluso da la posibilidad de realizar de forma automática la marca de fin de comentario. Conviene activa esta opción, de la forma siguiente: 1. Seleccionad la opción Preferences, en la barra de menú Edit. Esto hará que aparezca la ventana mostrada en la Figura 2. En ella deberı́a activarse (en la imagen ya aparece activa) la opción Automatically Close Block Comments, dentro del conjunto de opciones denominadas como Miscellaneous. Figura 2: Ventana de preferencias de DrJava 4.2. Panel de archivo(s) El panel presente a la izquierda muestra los archivos abiertos con los que se puede trabajar. La Figura 3 muestra que los dos archivos abiertos actualmente son Jugador.java y Equipo.java. 7 7 Fundamentos de la Programación Herramienta DrJava Figura 3: Trabajo con varios archivos a la vez En la parte inferior aparece una ventana que permite visualizar la información de tres pestañas diferentes: interacciones (donde, como ya se verá, se pueden ejecutar directamente sentencias, sin necesidad de disponer de un método main), consola (donde se irá mostrando la salida del programa: todo lo impreso mediante la sentencia System.out.println()) y salida del compilador (donde se mostrarán los errores presentes en el código y detectados por el compilador). El panel de interacciones se verá con más detalle en una sección especı́fica (6). 5. Creación de proyectos DrJava incluye la posibilidad de gestionar programas compuestos por múltiples archivos mediante proyectos. Mediante este facilidad es posible guardar toda la información sobre las clases involucradas en un archivo de proyecto, de forma que al abrirlo se abren también, de forma inmediata, el código de las clases que lo componen. Respecto a los proyectos se dispone de las siguientes operaciones: Crear nuevos proyectos. Para crear un proyecto nuevo basta con 8 8 Fundamentos de la Programación Herramienta DrJava seleccionar la opción New en el menú Project. Al pulsar aquı́ aparecerá una nueva ventana en que dar el nombre del proyecto a crear. Como ejemplo, crearemos un proyecto llamado Practica3, donde incluiremos los archivos Jugador.java y Equipo.java. Figura 4: Creación del proyecto Practica3 Ahora se agregan los dos archivos antes mencionados. Se muestra cómo se agregarı́a uno de ellos en la Figura 5. Para ello bastarı́a con pulsar sobre el icono de carpeta de la ventana de la izquierda, en que se muestra la estructura del proyecto creado, con el botón derecho del ratón. Seleccionando la opción Open File in Folder aprecerá una ventana en que seleccionar el archivo a agregar al proyecto. Figura 5: Agregando archivo a proyecto Una vez creado el proyecto se pueden salvar todos los cambios realizados en los archivos que lo componen. Para ello se selecciona la opción Save en el menú Project, o bien pinchando en el icono Save sobre la ventana de edición. Abrir un proyecto previamente creado, seleccionando la opción Open en el menú Project. 9 9 Fundamentos de la Programación Herramienta DrJava Compilar el proyecto. La opción Compile Project, del menú Project, permite compilar de forma completa el proyecto. Esto hará qie se realice la compilación de todos los archivos java que compongan el proyecto y que hubieran sido modificados desde la compilación previa. También pueden compilarse de forma separada los archivos que integran el proyecto. Para ello basta con pulsar con el botón derecho del ratón sobre el icono que representa al archivo, en la ventana de la derecha, y seleccionar la opción Compile Current Document. Indicar cuál es la clase que contiene al método main. Para ello se selecciona la opción Project Properties, en el menú Project. Esto hará aparecer la ventana de edición de propiedades, tal y como se muestra en la Figura 6. Figura 6: Definiendo la clase que contiene el método main Ejecutar el proyecto: seleccionar la opción Run Main Document, en el menú Project. Al pulsar sobre esta opción se ejecutará el método main de la clase definida como contenedora del mismo, tal y como se indicó en el punto anterior. 6. Panel de interacción Una de las caracterı́sticas más sobresalientes de DrJava es la posibilidad de interactuar con el código de las clases, sin necesidad de ofrecer la implementación de un método main. Esto permite probar el efecto de introducir ciertas sentencias, antes de incluirlas de forma definitiva en el código de la clase en construcción. Las sentencias pueden teclearse incluyendo el punto y coma del final o excluyéndolo. Veamos algunos ejemplos de interacción, junto con el resultado producido. Comenzamos tecleando, en la ventana de interacción, la siguiente sentencia: String cadena="Prueba con cadena de caracteres"; El resultado obtenido, al escribir ahora cadena, es el indicado en la Figura 7. 10 10 Fundamentos de la Programación Herramienta DrJava Figura 7: Interacción con cadena de caracteres Ahora, a todos los efectos, cadena es un objeto de la clase String, sobre el que se pueden probar todos los métodos disponibles para los objetos de esta clase. Por ejemplo, aplicar el método length() para determinar el número de caracteres que componen la cadena (ver Figura 8). También es posible utilizar la funcionalidad de Java asociada a la construcción de interfaces de usuario. Por ejemplo, al teclear: import java.swing.*; JFrame marco=new JFrame("Mi ventana de aplicación"); marco,show(); provoca la aparición de un marco de aplicación con el tı́tulo indicado, como se aprecia en la Figura 9. Y por supuesto, podemos crear objetos de las clases definidas por nosotros. Por ejemplo, puede crearse un objeto de la clase Jugador, sin más que utilizar alguno de sus constructores. Si se usa el constructor por defecto, podremos posteriormente comprobar el valor de sus datos miembros (ver Figura 10). En este caso, vemos como DrJava muestra el valor devuelto por el método obtenerFicha(), sin necesidad de tener que recogerlo en una variable para poder mostrarlo. Las lı́neas probadas en la ventana de interacción pueden incorporarse fácilmente a los archivos de clase abiertos. Para ello basta con seleccionar la opción Lisft Current Interaction to Definitions en el menú contextual de la 11 11 Fundamentos de la Programación Herramienta DrJava Figura 8: Interacción con cadena de caracteres Figura 9: Interacción con clases de interfaz gráfica ventana de interacciones, y activado al pulsar con el botón de la derecha sobre ella. 7. Compilación Los compiladores de Java comprueban la existencia de errores en los programas y los traducen a ficheros .class. Cada vez que se cambie un fichero fuente, debe ser compilado antes de usarlo. Para hacer esto en DrJava, simplemente debes pinchar en Çompile All”, en la barra de herramientas. Cualquier error resultante será resaltado en el código fuente. Ası́, para compilar ficheros, debes pinchar en los botones Çompile All.o en Çompile Current Document”, de la barra de herramientas. Después de que esta acción se haya llevado a cabo satisfactoriamente, el ”Interaction 12 12 Fundamentos de la Programación Herramienta DrJava Figura 10: Interacción con clase Jugador Pane”se resetea para que se puedan usar con los nuevos ficheros .class. La salida del Çonsole Tab”también se reseata para comenzar una nueva sesión. Antes de compilar, los ficheros deben estar salvados. No es aconsejable modificar un fichero fuente cuando se estén monstrando los errores, pues las lı́neas resaltadas pueden corresponder con la lı́neas donde existe realmente el error. Si el compilador encuentra algún error en el programa, DrJava lo muestra en la pestaña Çompiler Output.en la parte baja de la ventana. Se muestra en la lista un resumen de cada error, incluyendo el nombre del fichero y el número de lı́nea. Si se pincha con el ratón cualquier error se resalta la lı́nea en el fichero fuente donde se ha producido (si se encuentran errores en un fichero que no se esté editado o esté cargado, se carga en el editor directamente). De manera análoga, si el cursor se mueve a una lı́nea de código que contiene un error mientras la pestaña Çompiler Output”se muestra, ésta y el correspondiente mensaje de error quedan resaltados. 8. Depuración DrJava ofrece herramientas avanzadas para la depuración de programas en el ”Interaction Pane”. Se pueden fijar puntos de ruptura (breakpoints) en los ficheros fuente en el ”Definitions Pane”, llamar a métodos que se paran en los puntos de ruptura e interactuar con los programas mientras están suspendidos en los puntos de ruptura. Concretamente en esta situación, los usuarios pueden intractuar con cualquier variable, dato miembro o métodos que estén en el ámbito corrspondiente. El usuario 13 13 Fundamentos de la Programación Herramienta DrJava puede continuar la ejecución normal del programa o ir ejecutándolo paso a paso (lı́nea a lı́nea). Para utilizar el depurador de DrJava, se debe seleccionar el mandato ”Debug Mode.en el menú ”Debugger”. Un panel informatiov se mostrará entre el ”Definitions Pane el ”Interactions Pane”. También se habilitarán varios items del menú ”Debugger”. Cuando se está utilizado el depurador, cualquier modificación de los ficheros fuentes no se reflejará en la propia depuración hasta que se compile el programa de nuevo. Además, si se hace algún cambio las lı́neas resaltadas no corresponderán con las del código fuente. 2 8.1. Puntos de ruptura Una vez que DrJava está en modo de depuración, se pueden establecer puntos de ruptura en casi cualquier lı́nea del código fuente en el ”Definition Pane”, por medio del mandato ”Toggle Breakpoint on Current Line”del menú ”Debugger.o mendiante ”Toggle Breakpoint.en el menú de contexto (botón derecho del ratón) estando en el ”Definition Pane”. Cuando se establece un punto de ruptura, la lı́nea se resalta en rojo y una nueva entrada aparecerá en la tabla de puntos de ruptura del panel de depuración. Un punto de ruptura se alcanza cuando el método se llama en el ”Interations Pane el flujo de control alcanza la lı́nea de código donde se ha puesto el punto de ruptura. Cuando esto ocurre la lı́nea se resalta en azul. Sólo se pueden poner puntos de ruptura en lı́neas que tengan código ejecutable. Ası́, en lı́neas en blanco o comentarios nunca podrá habilitarse un punto de ruptura. Cuando se alcanza un punto de ruptura, el ”Interaction Pane”se habilita, poseyendo el contexto del programa que ha sido suspendido, incluyendo todas las variables, campos y métodos dentro del ámbito del método suspendido. Se puede teclear el nombre de cualquier variable o campo para ver su valor o asignar uno nuevo, o llamar cualquier método dentro del ámbito para observar su conducta. Todos los cambios se reflejan en el programa en el momento en que continúe su ejecución. 2 8.2. Ejecución paso a paso y reanudación de la misma Cuando DrJava alcanza un punto de ruptura, el método se suspende. Varios mandatos de los menús ”Debug ”Debug Panel”se habilitan para su uso. Si se elige Resume”(Reanudación), el fichero suspendido finalizará su ejecución, como mı́nimo hasta que alcance otro punto de ruptura. También se pueden usar los mandatos ”Step”del menú ”Debug”para ejecutar paso a paso una lı́nea. Cada vez que se da un paso, el depurador resaltará la siguiente lı́nea que se ejecutará. Las posibilidades existente son las siguientes: 2 Step Into. Se introduce en las llamadas a métodos. Step Over. Ejecutará la instrucción de la lı́nea sin entrar en llamadas. 14 14 Fundamentos de la Programación Herramienta DrJava Step Out. Finalizará la ejecución de método actual y parará en la siguiente lı́nea de código después de la llamada del método. 8.3. El panel de Depuración Este panel aparece cuando el modo de depuración está activado. DrJava muestra todos los puntos de ruptura organizados por medio de un árbol, ası́ como los datos miembros y variables que estén viendo en ese momento. El ”Stack tab”(Pila) muestra la traza de la pila del programa en el momento en el que el programa se suspende y el ”Thread tab”(Hebra) muestra todas las hebras en el punto de tiempo concreto. Las variables y datos miembros se pueden ver introduciéndo su nombre en una fila de la tabla ”Watches”. Análogamente también se puden eliminar una vez que ya no sean útiles. 9. Documentación Documentar el código es crucial para que otras personas pueden enterderlo, y también para ayudar a recordar al propio programador como funcinan programas antiguos. Ası́, es muy útil escribir comentarios dentro del propio código fuente, donde pueden ser fácilmente modificados cuando se cambie el código. Javadoc es una herramienta que define el formato estándar para esos comentarios, la cual también genera ficheros HTML para ver la documentación en un navegador web. DrJava ofrece la posibilidad de ejecutar Javadoc sobre el código fuente deseado mediante los mandatos ”Javadoc All Documents ”Preview Javadoc for Current Document”del menú ”Tools”. Éstos mandatos generarán ficheros HTML a partir de los comentarios escritos y los mostrará en un navegador. Para aprender cómo documentar con Javadoc, remitimos al lector al enlace http://java.sun.com/j2se/javadoc/writingdoccomments/index.html En DrJava, la opción ”Javadoc All Documents”generará las páginas HTML de manera conjunta de todos los ficheros fuente que estén situados en el directorio y en sus respectivos subdirectorios de manera automática, creando un directorio ”doc”donde se almacena toda la documentación generada. Otra alternativa es el mandato ”Preview Javadoc for Current Document”, el cual genera la documentación para una única clase sin guardarla en disco. Cuando cualquiera de estas dos alternativas para generar la documentación se ha llevado a cabo con éxito, DrJava muestra los resultados en una ventana correspondiente a un navegador. 2 10. Apéndice: configuración 15 15