tutorial spanish bluej201

Upload: ferrol

Post on 30-May-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 Tutorial Spanish BlueJ201

    1/38

    El "tutorial" de BlueJ

    Versin 2.0.1

    para BlueJ versin 2.0.x

    Michael KllingMrsk Institute

    University of Southern Denmark

    Traducido al espaol por Germn BordelUniversidad del Pas Vasco / Euskal Herriko Univertsitatea (UPV/EHU)

    Lejona - VizcayaSpain

    febrero 2005

  • 8/14/2019 Tutorial Spanish BlueJ201

    2/38

    Copyright de la versin original M. Klling 1

    Copyright de la versin original M. Klling

    Contenidos

    1 Prefacio 3

    1.1 Sobre BlueJ............................................................................................................................. 3

    1.2 mbito y audiencia................................................................................................................. 3

    1.3 Copyright, licencia y redistribucin....................................................................................... 3

    1.4 FeedBack............................................................................................................................ 4

    2 Instalacin 52.1 Instalacin en Windows.......................................................................................................... 5

    2.2 Instalacin en Macintosh ....................................................................................................... 5

    2.3 Instalacin en Linux/Unix y otros sistemas............................................................................ 6

    2.4 Problemas de instalacin. ...................................................................................................... 6

    3 Comenzando - editar /compilar /ejecutar. 7

    3.1 Arrancando el BlueJ............................................................................................................... 7

    3.2 Abriendo un proyecto. ............................................................................................................ 83.3 Creando objetos. .................................................................................................................... 8

    3.4 Ejecucin. ............................................................................................................................. 10

    3.5 Editando una clase. .............................................................................................................. 12

    3.6 Compilacin. ........................................................................................................................ 13

    3.7 Ayuda con los errores de compilacin. ................................................................................ 13

    4 Haciendo un poco ms ... 15

    4.1 Inspeccin............................................................................................................................. 154.2 Pasando objetos como parmetros. ..................................................................................... 17

    5 Creando un nuevo proyecto. 19

    5.1 Creando el directorio del proyecto. ..................................................................................... 19

    5.2 Creando clases ..................................................................................................................... 19

    5.3 Creando dependencias ......................................................................................................... 19

    5.4 Eliminando elementos .......................................................................................................... 20

    6 Utilizando la zona de cdigo. 21

  • 8/14/2019 Tutorial Spanish BlueJ201

    3/38

    Tabla de Contenidos

    Copyright de la versin original M. Klling 2

    6.1 Mostrando la zona de cdigo ............................................................................................... 21

    6.2 Evaluacin de expresiones simples ...................................................................................... 22

    6.3 Recibiendo objetos ............................................................................................................... 22

    6.4 Inspeccionando objetos ........................................................................................................ 23

    6.5 Ejecutando sentencias .......................................................................................................... 23

    6.6 Sentencias multilnea y secuencias de sentencias ................................................................ 23

    6.7 Trabajando con variables .................................................................................................... 24

    6.8 Historial de mandos ............................................................................................................. 24

    7 Depuracin [Debugging]. 25

    7.1 Estableciendo puntos de ruptura [Breakpoints]. ................................................................. 25

    7.2 Avanzando paso a paso por el cdigo.................................................................................. 277.3 Inspeccionando variables..................................................................................................... 27

    7.4 Detener y terminar. .............................................................................................................. 28

    8 Creando aplicaciones autnomas ("stand-alone"). 29

    9 Creando applets. 31

    9.1 Poniendo en marcha un applet............................................................................................. 31

    9.2 Creando un applet. ............................................................................................................... 329.3 Comprobando el applet. ....................................................................................................... 32

    10 Otras operaciones. 33

    10.1 Abriendo paquetes no-BlueJ con BlueJ................................................................................ 33

    10.2 Aadiendo clases existentes al proyecto. ............................................................................. 33

    10.3 Llamando a "main" y a otros mtodos estticos. ................................................................. 33

    10.4 Generando documentacin................................................................................................... 34

    10.5 Trabajando con bibliotecas.................................................................................................. 34

    10.6 Creando objetos a partir de clases de biblioteca. ................................................................ 34

    11 Slo los sumarios. 36

  • 8/14/2019 Tutorial Spanish BlueJ201

    4/38

    Copyright de la versin original M. Klling 3

    1 Prefacio

    1.1 Sobre BlueJ

    Este "tutorial" es una introduccin al uso del entorno de programacin BlueJ. BlueJ es un entorno dedesarrollo Java diseado especficamente para la enseanza a un nivel introductorio. Ha sidodiseado e implementado por el equipo BlueJ en la Deakin University, Melbourne, Australia, y laUniversity of Kent, en Canterbury, UK.

    En http://www.bluej.org se encuentra disponible ms informacin sobre BlueJ.

    1.2 mbito y audiencia

    Este "tutorial" esta orientado a aquella gente que quiera familiarizarse con las capacidades delentorno. No explica decisiones de diseo sobre las cuales se ha construido el entorno o las cuestionesde investigacin que se encuentran tras l.

    Este "tutorial" no est pensado para ensear Java. Se aconseja a los principiantes en programacin conJava el estudio de un libro de texto introductorio o seguir un curso de Java.

    Este no es un manual de referencia completo del entorno. Se han dejado fuera muchos detalles - elnfasis se pone en dar una introduccin breve y concisa en lugar de una completa cobertura de suscapacidades. Para obtener una referencia ms detallada, vase el The BlueJ Environment Reference

    Manual, disponible en el sitio Web de BlueJ (www.bluj.org).Cada seccin comienza con un sumario en una frase de una lnea. Esto permite a los usuarios yafamiliarizados con partes del sistema decidir si leer o no cada apartado. La seccin 11 simplementerepite estas lneas de sumario a modo de referencia rpida.

    1.3 Copyright, licencia y redistribucin.

    El sistema BlueJ y este "tutorial" estn disponibles tal cual gratuitamente para cualquiera y paracualquier tipo de uso y redistribucin no comercial. Esta prohibido el desensamblado del sistema.

    Ninguna parte del sistema BlueJ o de su documentacin puede ser vendida con nimo de lucro oincluida en un paquete que sea vendido con nimo de lucro sin la autorizacin por escrito de losautores.

    El Copyright para BlueJ es de M. Klling y J. Rosenberg.

  • 8/14/2019 Tutorial Spanish BlueJ201

    5/38

    Copyright de la versin original M. Klling 4

    1.4 FeedBack

    Los comentarios, cuestiones, correcciones, crticas y cualquier otra clase de feedback concerniente

    al sistema BlueJ o este "tutorial" son bienvenidos y se anima a ello activamente. Por favor enven elmail a Michael Klling ([email protected]).*

    * En lo referente a esta traduccin puede contactarse con [email protected]

  • 8/14/2019 Tutorial Spanish BlueJ201

    6/38

    Copyright de la versin original M. Klling 5

    2 Instalacin

    BlueJ se distribuye en tres formatos diferentes: uno para sistemas Windows, otro para MacOs, y otropara todos los dems sistemas. La instalacin es prcticamente directa.

    Prerrequisitos

    Debe tener J2SE v1.4 (a.k.a. JDK 1.4) o posterior instalado en el sistema para utilizar BlueJ. Engeneral, es recomendable actualizar a la ltima versin estable (no beta) de Java. Si no tiene el JDKinstalado puede descargarlo del sitio Web de Sun en http://java.sun.com/j2se/. En MacOS X seencuentra preinstalada una versin reciente de JDK - no necesita instalarla usted mismo. Si encuentrausted una pgina de descarga que ofrece "JRE" (Java Runtime Environment) y "SDK" (SoftwareDevelopment Kit), debe descargar "SDK" - el JRE no es suficiente.

    2.1 Instalacin en Windows

    El fichero de distribucin para el sistema Windows se llama bluejsetup.xxx.exe, donde xxx es unnmero de versin. Por ejemplo, la distribucin de BlueJ 2.0.0 se llama bluejsetup-200.exe. Debetener este fichero en el disco, o puede descargarlo del sitio Web de BlueJ en http://www.bluej.org.Ejecute este instalador.

    El instalador le permite seleccionar el directorio donde realizar la instalacin. Tambin ofrece laopcin de instalar un acceso en el men de inicio y en el escritorio.

    Tras la instalacin, encontrar el programa bluej.exe en el directorio de instalacin de BlueJ.

    La primera vez que lance BlueJ, buscar el sistema Java (JDK). Si encuentra ms de un sistema Javaadecuado (p. ej. tiene usted instalados JDK 1.4.2 y JDK 1.5.0), un dialogo le permitir seleccionarcual usar. Si no encuentra ninguno, se le pedir que lo localice usted mismo (esto puede sucedercuando se ha instalado un sistema JDK, pero las correspondientes entradas en el registro se hanborrado).

    El instalador de BlueJ tambin instala un programa llamado vmselect.exe. Utilizando este programausted puede cambiar posteriormente la versin de Java que usa BlueJ. Ejecute vmselectpara arrancarBlueJ con una versin diferente de java.

    La eleccin de JDK se almacena para cada versin de BlueJ. Si tiene diferentes versiones de BlueJinstaladas, usted puede usar una versin de BlueJ con JDK 1.4.2 y otra versin de BlueJ con JDK 1.5.El cambio de la versin de Java para BlueJ realizar este cambio para todas las instalaciones de BlueJ

    de la misma versin para el mismo usuario.

    2.2 Instalacin en Macintosh

    Por favor, tenga en cuenta que BlueJ solo corre sobre MacOS X.

    El fichero de distribucin para MacOS se llama BlueJ-xxx.zip, donde xxx es un nmero de versin.Por ejemplo, la distribucin de BlueJ versin 2.0.0 se llamaBlueJ-200.zip. Debe tener este fichero enel disco, o puede descargarlo del sitio Web de BlueJ en http://www.bluej.org.

    MacOS normalmente descomprimir este archivo automticamente despus de la descarga. Si no es

    as, haga doble clic para descomprimirlo.

  • 8/14/2019 Tutorial Spanish BlueJ201

    7/38

    Instalacin

    Copyright de la versin original M. Klling 6

    Despus de descomprimir, tendr usted una carpeta llamada BlueJ-xxx. Mueva esta carpeta a sucarpeta Aplicaciones (o donde quiera que usted desee mantenerla). No es necesaria ms instalacin.

    2.3 Instalacin en Linux/Unix y otros sistemas.

    El fichero general de distribucin es un fichero ejecutable jar. Se llama bluej-xxx.jar, donde xxx es unnmero de versin. Por ejemplo, la distribucin de BlueJ 2.0.0 se llama bluej-200.jar. Debe tener estefichero en el disco, o puede descargarlo del sitio Web de BlueJ en http://www.bluej.org.

    Ponga en marcha el instalador ejecutando el siguiente mando. NOTA: para este ejemplo uso el ficherode distribucin bluej-200.jar es necesario usar el nombre de fichero que usted tenga (con elnmero de versin correcto).

    /bin/java -jar bluej-200.jar

    es el directorio donde se instal el JDK.

    Se muestra una ventana, permitindole elegir el directorio de instalacin de BlueJ y la versin de JDKa usar para hacer funcionar el BlueJ.

    Pulse Install. Una vez terminado, BlueJ debera estar instalado.

    2.4 Problemas de instalacin.

    Si tiene cualquier problema, consulte las "Frequently Asked Questions (FAQ)" en el sitio Web deBlueJ (http://www.bluej.org/help/faq.html) y lea la seccin "How To Ask For Help"(http://www.bluej.org/help/ask-help.html)

  • 8/14/2019 Tutorial Spanish BlueJ201

    8/38

    Copyright de la versin original M. Klling 7

    3 Comenzando - editar /compilar /ejecutar.

    3.1 Arrancando el BlueJ.

    En Windows y MacOS, se ha instalado un programa llamadoBlueJ. Pngalo en marcha.

    En los sistemas Unix, el instalador sita un "script" llamado bluej en el directorio de instalacin.Desde un interfaz GUI, simplemente haga doble-clic en el fichero. Desde una lnea de mando puedeiniciar BlueJ con un proyecto como argumento o sin el:

    $ bluej

    o

    $ bluej examples/people

    Figura 1: La ventana principal de BlueJ.

  • 8/14/2019 Tutorial Spanish BlueJ201

    9/38

    Comenzando - editar /compilar /ejecutar.

    Copyright de la versin original M. Klling 8

    3.2 Abriendo un proyecto.

    Sumario: Para abrir un proyecto, seleccione Open del men Project

    Los proyectos BlueJ, como los paquetes estndar de Java, son directorios conteniendo los ficherosincluidos en el proyecto.

    Despus de instalar BlueJ, use el mando de men Project-Open... para seleccionar y abrir un proyecto.

    En el directorio examples se incluyen varios proyectos de ejemplo con la distribucin estndar deBlueJ.

    Para esta seccin del "tutorial", abra el proyecto people, que est incluido en este directorio. Puedeencontrar el directorio examples en el directorio base (home) de BlueJ. Despus de abrir el proyecto,debera usted ver algo similar a la ventana mostrada en la Figura 1. La ventana podra no mostrarseexactamente igual en su sistema, pero las diferencias deberan ser menores.

    3.3 Creando objetos.

    Sumario: Para crear un objeto, seleccione un constructor del men emergente de la clase.

    Una de las caractersticas fundamentales de BlueJ es que no slo se puede ejecutar una aplicacincompleta, sino que se puede tambin interactuar con objetos aislados de cualquier clase y ejecutar susmtodos pblicos. Una ejecucin en BlueJ se realiza habitualmente creando un objeto e invocandoentonces a uno de sus mtodos. Esto es de gran ayuda durante el desarrollo de una aplicacin pueden comprobarse las clases individualmente tan pronto como han sido escritas. No es necesarioescribir la aplicacin completa primero.

    Nota "marginal": los mtodos estticos pueden ser ejecutados directamente sin crear primero un objeto.Uno de los mtodos estticos puede ser "main", por lo que podemos hacer lo mismo que sucedenormalmente en las aplicaciones Java comenzar una aplicacin simplemente ejecutando un mtodoesttico principal ("main"). Volveremos a esto ms tarde. Primero haremos algunas otras cosas, msinteresantes, que no pueden hacerse normalmente en entornos Java.

    Los cuadrados que ve en la parte central de la ventana principal (etiquetadosDatabase, Persona, Staffy Student) son iconos representando las clases involucradas en esta aplicacin. Puede obtener unmen con operaciones aplicables a una clase pulsando el botn derecho del ratn sobre el icono de laclase (Macintosh: ctrl.+ pulsar ratn1) (Figura 2). Las operaciones mostradas son operaciones new concada uno de los constructores definidos para esta clase (primero) seguidas por algunas operacionesproporcionadas por el entorno.

    1 Cuando quiera que se mencione "pulsar botn derecho" en este "tutorial", los usuarios de Macintosh debenentenderlo como "ctrl.+ pulsar ratn"

  • 8/14/2019 Tutorial Spanish BlueJ201

    10/38

    Comenzando - editar /compilar /ejecutar.

    Copyright de la versin original M. Klling 9

    Figura 2. Operaciones de clase (men emergente (popup))

    Queremos crear un objeto Staff, por lo tanto debemos hacer "click-derecho" en el icono Staff (quehace emerger el men mostrado en la Figura 2). El men muestra dos constructores para crear unobjeto Staff, uno con parmetros y otro sin ellos. Primero, seleccione el constructor sin parmetros.Aparece el dialogo mostrado en la Figura 3.

    Figura 3:Creacin de un objeto sin parmetros.

  • 8/14/2019 Tutorial Spanish BlueJ201

    11/38

    Comenzando - editar /compilar /ejecutar.

    Copyright de la versin original M. Klling 10

    Este dialogo le pide un nombre para el objeto a crear. Al mismo tiempo, es sugerido un nombre pordefecto (staff_1). Este nombre por defecto sirve por el momento, as que simplemente pulse OK. Secrear un objeto Staff.

    Una vez que se ha creado el objeto, es situado en el banco de objetos (Figura 4). Esto es todo encuanto a creacin de objetos: seleccionar un constructor del men de la clase, ejecutarlo y ya tenemosel objeto en el banco de objetos.

    Figura 4: Un objeto en el banco de objetos.

    Puede que haya observado que la clase Person esta etiquetada como (es una claseabstracta). Notar (si lo prueba) que no puede crear objetos de clases abstractas (como lo define laespecificacin del lenguaje Java).

    3.4 Ejecucin.

    Sumario: Para ejecutar un mtodo, seleccinelo en el men emergente del objeto.

    Ahora que ha creado un objeto, puede ejecutar sus operaciones pblicas. (Java llama a las operacionesmtodos). Pulse el botn derecho del ratn sobre el objeto y aparecer un men con operaciones delobjeto (Figura 5). El men muestra los mtodos disponibles para ese objeto y dos operacionesespeciales proporcionadas por el entorno (Inspect(inspeccionar) yRemove (eliminar)). Analizaremosestas ms tarde. Primero, concentrmonos en los mtodos.

  • 8/14/2019 Tutorial Spanish BlueJ201

    12/38

    Comenzando - editar /compilar /ejecutar.

    Copyright de la versin original M. Klling 11

    Figura 5: El men de objeto.

    Vemos que hay mtodos setRoom y getRoom que establecen y devuelven el nmero de local de esteempleado [miembro del staff]. Pruebe a llamar a getRoom. Sencillamente seleccinelo en el men delobjeto y ser ejecutado. Aparece un dialogo mostrando el resultado de la llamada (Figura 6). En estecaso el nombre reza "(unknown room)" (local desconocido) porque no especificamos previamente unlocal para esta persona.

    Figura 6: Presentacin del resultado de una funcin.

    Los mtodos heredados de una superclase son accesibles a travs de un submen. En la parte alta del

    men emergente del objeto hay dos submens, uno para los mtodos heredados de Object y uno paralos de Person (Figura 5). Puede llamar a los mtodos de Person (como por ejemplo getName)seleccionndolos en el submen. Prubelo. Notar que la respuesta es igualmente vaga: responde"(unknown name)" (nombre desconocido), porque no hemos dado un nombre a esta persona.

    Ahora probemos a especificar un nmero de local. Esto mostrar cmo hacer una llamada que tieneparmetros. (Las llamadas a getRoom y getName tenan valores de retorno, pero no parmetros).Llame a la funcin setRoom seleccionndola en el men. Aparece un dilogo requirindole queintroduzca un parmetro (Figura 7).

  • 8/14/2019 Tutorial Spanish BlueJ201

    13/38

    Comenzando - editar /compilar /ejecutar.

    Copyright de la versin original M. Klling 12

    Figura 7: Dialogo de llamada a una funcin con parmetros.

    En lo ms alto, este dilogo muestra el interfaz del mtodo a llamar (incluyendo comentario yprototipo [signature]). Debajo de esto se encuentra un campo de entrada de texto donde puedeintroducir el parmetro. La firma en la parte alta nos indica que se espera un parmetro de tipo String.Introduzca el nuevo local como una String (incluyendo las comillas) en el campo de texto y pulse OK.

    Esto es todo como este mtodo no devuelve un valor, no hay dialogo de resultado. Llame agetRoom de nuevo para comprobar que el local ha cambiado.

    Juegue un momento con la creacin de objetos y las llamadas a mtodos. Pruebe a llamar a unconstructor con argumentos y llame a algunos otros mtodos hasta que le resulten familiares estasoperaciones.

    3.5 Editando una clase.Sumario: Para editar el cdigo fuente de una clase, haga doble-clic en su icono.

    Hasta el momento hemos tratado slo con el interfaz de un objeto. Ahora es el momento de mirardentro. Puede ver la implementacin de una clase seleccionando Open Editorde entre las operacionesde clase. (Recordatorio: haciendo clic-derecho en el icono de clase se muestran las operaciones declase.) Hacer doble-clic en el icono de clase es un atajo (shortcut) para la misma funcionalidad. Eneste "tutorial" no se describe el editor con mucho detalle, pero le debe de resultar muy sencillo deusar. Algunos detalles sobre el editor se describirn ms tarde separadamente. Por ahora, obra laimplementacin de la clase Staff. Localice la implementacin del mtodo getRoom. ste devuelve,como sugiere su nombre, el local del miembro del personal. Cambiemos el mtodo aadiendo el

    prefijo "room" al resultado de la funcin (de modo que el mtodo devolver, digamos, "room M.3.18"en lugar de slo "M.3.18"). Podemos hacer esto cambiando la lnea

    return room

    por

    return "room " + room;

    BlueJ soporta por completo todo el Java no modificado, de modo que no hay nada especial a tener encuenta respecto a cmo implementar las clases.

  • 8/14/2019 Tutorial Spanish BlueJ201

    14/38

    Comenzando - editar /compilar /ejecutar.

    Copyright de la versin original M. Klling 13

    3.6 Compilacin.

    Sumario: Para compilar una clase, pulse el botn Compile del editor. Para compilar un proyecto,

    pulse el botn Compile en la ventana del proyecto.Despus de insertar el texto (antes de que haga ninguna otra cosa), compruebe la vista general delproyecto (la ventana principal). Notar que el icono de la clase Staffha cambiado: ahora esta rayado.El aspecto rayado marca las clases que no han sido compiladas desde el ltimo cambio. Volvamos aleditor.

    Nota "marginal": Se preguntar por qu los iconos de clase no estaban rayados cuando abri elproyecto. Esto se debe a que las clases en el proyecto people se distribuyen ya compiladas. A menudolos proyectos en BlueJ se distribuyen sin compilar, de modo que puede esperar ver la mayora de losiconos rayados cuando abra por primera vez un proyecto en adelante.

    En la barra de herramientas que se encuentra en la parte alta del editor hay varios botones con las

    funciones usadas frecuentemente. Una de ellas es Compile. Esta funcin le permite compilar la clasedirectamente desde dentro del editor. Si no ha cometido ningn error, debe aparecer un mensaje en elrea de informacin que se encuentra abajo en el editor notificndole que la clase ha sido compilada.Si ha cometido alguna equivocacin que conduce a un error de sintaxis, la lnea con el error esresaltada y se muestra un mensaje de error en el rea de informacin. (En el caso de que lacompilacin haya funcionado a la primera, pruebe a introducir un error sintctico ahora como porejemplo eliminar un punto y coma y compile de nuevo nicamente para comprobar cmo semuestra).

    Una vez que haya compilado con xito la clase, cierre el editor.

    Nota "marginal": no es necesario salvar de modo explcito el cdigo fuente de la clase. Los fuentes se

    salvan automticamente cuando es necesario (por ejemplo cuando se cierra el editor o antes de compilarla clase). Puede salvar explcitamente si lo desea (hay una funcin en el men Class del editor) peroesto slo es necesario si su sistema es realmente inestable y se viene abajo frecuentemente y le preocupaperder su trabajo.

    La barra de herramientas de la ventana del proyecto tambin tiene un botn Compile. Esta operacinde compilacin afecta a todo el proyecto. (De hecho determina qu clases necesitan recompilacin yentonces lo hace en el orden adecuado.) Compruebe esto cambiando dos o ms clases (de modo quedos o ms clases aparecern rayadas en el diagrama de clases) y entonces pulse el botn Compile. Sise detecta un error en una de las clases compiladas, se abrir el editor y sern mostrados el mensaje deerror y su posicin.

    Podr comprobar que el banco de objetos estar de nuevo vaco. Los objetos son eliminados cada vezque se cambia la implementacin.

    3.7 Ayuda con los errores de compilacin.

    Sumario: Para obtener ayuda para un mensaje de error de compilacin, pulse la interrogacin queest prxima al mensaje de error.

    Muy frecuentemente, los estudiantes principiantes tienen dificultades para entender los mensajes deerror del compilador. Nosotros intentamos proporcionar alguna ayuda.

    Abra el editor de nuevo, introduzca un error en el fichero fuente, y compile. Debe aparecer un

    mensaje en el rea de informacin del editor. A la derecha del rea de informacin aparece una

  • 8/14/2019 Tutorial Spanish BlueJ201

    15/38

    Comenzando - editar /compilar /ejecutar.

    Copyright de la versin original M. Klling 14

    interrogacin que se puede pulsar para obtener algo ms de informacin sobre ese tipo de error(Figura 8).

    Figura 8: Un error de compilacin y el botn de ayuda.

    En este momento, no hay textos de ayuda para todos los mensajes de error. Todava falta escribiralgunos textos de ayuda. De todos modos merece la pena probarlo muchos errores ya estn

    explicados. Los que faltan sern escritos e incluidos en una distribucin futura de BlueJ.

  • 8/14/2019 Tutorial Spanish BlueJ201

    16/38

    Copyright de la versin original M. Klling 15

    4 Haciendo un poco ms ...

    En esta seccin, veremos algunas cosas ms que pueden realizarse con el entorno. Cosas que no sonesenciales, pero s comnmente muy usadas.

    4.1 Inspeccin.

    Sumario: La inspeccin de objetos permite realizar una depuracin sencilla al mostrar el estadointerno de un objeto.

    Cuando ejecut un mtodo de un objeto, pudo haber notado que, adems de los mtodos definidos porel usuario, se encuentra disponible para los objetos la operacin Inspection [inspeccin] (Figura 5).Esta operacin permite comprobar el estado de las variables de instancia ("campos") de los objetos.Pruebe a crear un objeto con algunos valores definidos (por ejemplo, un objeto Staff con elconstructor que recibe parmetros). A continuacin seleccione Inspection en el men del objeto.Aparece un cuadro de dilogo mostrando los campos del objeto, sus tipos y sus valores (Figura 9).

    Figura 9: Dialogo Inspeccin.

    La inspeccin es til para comprobar rpidamente si una operacin "mutadora" (una operacin quecambia el estado del objeto) se ha ejecutado correctamente. Por tanto, la inspeccin es unaherramienta sencilla de depuracin.

    En el ejemplo Staff, todos los campos son de tipo simple (no hay objetos ni strings). El valor de estostipos puede mostrarse directamente. Usted puede ver inmediatamente que el constructor ha hecho lasasignaciones correctas.

    En casos ms complejos, los valores de los campos pueden ser referencias a objetos definidos por elusuario. Para ver un ejemplo de ello usaremos otro proyecto. Abra el proyecto people2, que tambinse encuentra en la distribucin estndar de BlueJ. En la Figura 10 se muestra la ventana principal depeople2. Como puede ver, este segundo ejemplo tiene una clase Address adems de las clases vistasanteriormente. Uno de los campos en la clase Person es del tipo definido por el usuarioAddress.

  • 8/14/2019 Tutorial Spanish BlueJ201

    17/38

    Haciendo un poco ms....

    Copyright de la versin original M. Klling 16

    Figura 10: La ventana del proyecto people2.

    Para lo prximo que queremos probar inspeccin de campos objeto cree un objeto Staff y llameal mtodo setAddress de este objeto (lo encontrar en el submen de Person). Introduzca unadireccin. Internamente, el cdigo de Staffcrea un objeto de claseAddress y lo almacena en el campoaddress.

    Ahora, inspeccione el objeto Staff. El cuadro de dilogo de inspeccin resultante se muestra en laFigura 11. Los campos en el objeto Staff incluyen ahora address. Como puede ver, su valor semuestra como una flecha, que representa una referencia a otro objeto. Dado que es un objetocomplejo, definido por el usuario, su valor no puede ser mostrado directamente en esa lista. Paraexaminar la direccin [address] ms a fondo, seleccione el campo address en la lista y pulse el botn

    Inspectdel cuadro de dilogo. (Tambin puede hacer doble clic en el campo address). Se abre otraventana de inspeccin, mostrando los detalles del objetoAddress (Figura 12).

  • 8/14/2019 Tutorial Spanish BlueJ201

    18/38

    Haciendo un poco ms....

    Copyright de la versin original M. Klling 17

    Figura 11: Inspeccin con referencia a objeto.

    Figura 12: Inspeccin de objeto interno.

    Si el campo seleccionado es pblico entonces, en lugar de pulsar Inspect, puede tambin seleccionarel campo address y pulsar el botn Get. Esta operacin sita el objeto seleccionado en el banco deobjetos. Ah, usted puede examinarlo ms a fondo haciendo llamadas a sus mtodos.

    4.2 Pasando objetos como parmetros.

    Sumario: Se puede pasar un objeto como parmetro a un mtodo pulsando en el icono del objeto.

    Los objetos pueden ser pasados como parmetros a mtodos de otros objetos. Probemos un ejemplo.Cree un objeto de clase Database. (Observar que la clase Database slo tiene un constructor sin

    parmetros, de modo que la construccin de un objeto es directa). El objetoDatabase

    tiene lahabilidad de almacenar una lista de personas. Tiene mtodos para aadir objetos persona y mostrar

  • 8/14/2019 Tutorial Spanish BlueJ201

    19/38

    Haciendo un poco ms....

    Copyright de la versin original M. Klling 18

    todas las personas almacenadas en un momento dado. (Llamarle Database es ciertamente un pocoexagerado!).

    Si no tiene an un objeto Staffo Studenten el banco de objetos, cree tambin uno de ellos. Para lo que

    sigue necesita un objetoDatabase

    y un objetoStaff

    oStudent

    en el banco de objetos a la vez.Ahora llame al mtodo addPerson del objeto Database. El prototipo le indica que se necesita unparmetro de tipo Person. (Recuerde: la clase Person es abstracta, por lo que no hay objetos que seandirectamente de tipo Person. Pero, debido a la "subclasificacin", objetos Studenty Staffpueden sersustituidos por objetos Person. Por tanto es legal pasar un objeto Studento Staffsonde se espera unPerson). Para pasar el objeto que tiene en su banco de objetos como parmetro a la llamada que estallevando a cabo, puede introducir su nombre en el campo del parmetro o, a modo de atajo,simplemente hacer doble clic en el objeto. Esto introduce su nombre en el campo del cuadro dedilogo de llamada al mtodo. Pulse OK y la llamada se realiza. Como no hay valor de retorno paraeste mtodo, no vemos inmediatamente un resultado. Puede llamar a ListAll en el objeto Databasepara comprobar que la operacin efectivamente se ha realizado. La operacin ListAll escribe lainformacin de la persona en la salida estndar. Observar que se abre automticamente un terminal

    de texto para mostrarlo.

    Pruebe esto de nuevo con ms de una persona introducida en la "base de datos".

  • 8/14/2019 Tutorial Spanish BlueJ201

    20/38

    Copyright de la versin original M. Klling 19

    5 Creando un nuevo proyecto.

    Este captulo le lleva a echar un vistazo rpido al modo de establecer de un nuevo proyecto.

    5.1 Creando el directorio del proyecto.

    Sumario: Para crear un proyecto seleccione New... del men Project.

    Para crear un nuevo proyecto seleccione Project - New... en el men. Se abre un cuadro de dialogo deseleccin de ficheros que le permite especificar un nombre y una localizacin para el nuevo proyecto.Prubelo ahora. Puede elegir cualquier nombre para su proyecto. Despus de que pulse OK, se crearun directorio con el nombre que especific usted, y la ventana principal muestra el nuevo proyectovaco.

    5.2 Creando clases

    Sumario: Para crear una clase, pulse el botn New Class y especifique el nombre de la clase.

    Puede crear ahora sus clases pulsando en el botnNew Class en la barra de herramientas del proyecto.Se le pedir un nombre para la clase - este nombre debe ser un identificador vlido en Java.

    Tambin puede usted elegir entre cuatro tipos de clases: abstracta, interfaz, applet o "estndar". Estaeleccin determina el esqueleto del cdigo que se crea inicialmente para su clase. Puede cambiar eltipo de clase posteriormente editando el cdigo fuente (por ejemplo, aadiendo la palabra clave

    "abstract" en el cdigo).

    Despus de crear la clase, queda representada por un icono en el diagrama. Si no es una claseestndar, el tipo (interfaz, abstracta o applet) se indica en el icono de clase. Cuando abre el editor parauna nueva clase observar que se ha creado el esqueleto por defecto - esto debera facilitar lainiciacin. El cdigo por defecto es sintcticamente correcto. Puede ser compilado (pero no hace grancosa). Pruebe a crear unas pocas clases y compilarlas.

    5.3 Creando dependencias

    Sumario: Para crear una flecha, pulse en el botn de flecha y arrstrela en el diagrama, osimplemente escriba el cdigo en el editor.

    El diagrama de clases muestra dependencias entre clases a modo de flechas. Las relaciones deherencia ("extends" o "implements") se muestran como flechas con punta hueca; las relaciones de tipo"usa" se muestran como flechas discontinuas con punta abierta.

    Puede aadir dependencias tanto grficamente (directamente en el diagrama) como textualmente en elcdigo fuente. Si aade una flecha grficamente, el cdigo fuente es actualizado automticamente; siaade la dependencia en el fuente, se actualiza el diagrama.

    Para aadir una flecha grficamente, pulse el botn de flecha apropiado (flecha hueca para"extender / implementar", o flecha discontinua para "usar") y arrastre la flecha de una clase a la otra.

    Aadir una flecha de herencia inserta la definicin "extends" o "implements" en el cdigo fuente de laclase (dependiendo de si el objetivo es una clase o un interfaz).

  • 8/14/2019 Tutorial Spanish BlueJ201

    21/38

    Creando un nuevo proyecto.

    Copyright de la versin original M. Klling 20

    Aadir una flecha de uso, no cambia inmediatamente el fuente (a no ser que el objetivo sea una clasede otro paquete. En ese caso se genera una sentencia "import", pero no hemos visto esto an ennuestros ejemplos). Tener una flecha de uso en el diagrama apuntando a una clase que no se usa en elcdigo generar posteriormente un aviso [warning] haciendo ver que la relacin de uso de una clase

    se ha declarado pero dicha clase no se utiliza.Aadir las flechas textualmente es sencillo: simplemente escriba el cdigo como lo haranormalmente. Tan pronto como la clase es guardada, el diagrama se actualiza. (Y recuerde: cerrar eleditor guarda automticamente).

    5.4 Eliminando elementos

    Sumario: Para eliminar una clase o una flecha, seleccione la funcin Remove de su men emergente.

    Para eliminar una clase del diagrama, seleccinela y ejecuteRemove Class en el men Edit. Tambin

    puede seleccionarRemove en el men emergente de la clase. Ambas opciones funcionan tambin paralas flechas: puede seleccionar la flecha primero y despus seleccionar Remove del men, o puedeusarse el men emergente de la flecha.

  • 8/14/2019 Tutorial Spanish BlueJ201

    22/38

    Copyright de la versin original M. Klling 21

    6 Utilizando la zona de cdigo.

    La zona de cdigo de BlueJ permite la evaluacin rpida y sencilla de snippets de Java (expresionesy sentencias). Por tanto la zona de cdigo puede ser utilizada para investigar los detalles de lasemntica de Java y para ilustrar y experimentar con la su sintaxis.

    6.1 Mostrando la zona de cdigo

    Sumario: Para comenzar a utilizar la zona de cdigo seleccione Show Code Pad en el men View.

    La zona de cdigo no se muestra por defecto. Para mostrarla utilice el elemento Show Code Paden elmen View. La ventana principal incluir ahora la zona de cdigo en la esquina inferior derecha, juntoal banco de objetos (Figura 13). Los separadores verticales y horizontales de la zona de cdigo y delbanco de objetos pueden ser ajustados para cambiar sus dimensiones.

    La zona de cdigo podr ser ya utilizada para introducir expresiones o sentencias. Pulsando Enter,cada lnea ser evaluada y podr mostrarse un resultado.

    Figura 13: La ventana principal mostrando la zona de cdigo.

  • 8/14/2019 Tutorial Spanish BlueJ201

    23/38

    Utilizando la zona de cdigo.

    Copyright de la versin original M. Klling 22

    6.2 Evaluacin de expresiones simples

    Sumario: Para evaluar expresiones Java, simplemente escrbalas en la zona de cdigo.

    La zona de cdigo puede ser utilizada para evaluar expresiones simples. Pruebe a introducir, porejemplo:

    4 + 45

    "hola".length()

    Math.max(33, 4)

    (int) 33.7

    javax.swing.JOptionPane.showInputDialog(null, "Nombre:")

    Las expresiones pueden referirse a objetos y valores estndar de Java, as como a clases del proyectoen curso. La zona de cdigo mostrar el valor resultante, seguido por su tipo (entre parntesis), o unmensaje de error si la expresin es incorrecta.

    Puede utilizar tambin objetos que tenga en el banco de objetos. Pruebe lo siguiente: site un objetode la clase Student en el banco de objetos (utilizando el men emergente de la clase como se hadescrito anteriormente). Llmelo estudiante1.

    En la zona de cdigo, ahora puede teclear:

    estudiante1.getName()

    Similarmente, puede referirse a todos los mtodos disponibles de las clases de sus proyectos.

    6.3 Recibiendo objetos

    Sumario: Para transferir objetos de la zona de cdigo al banco de objetos, arrastre el pequeo iconodel objeto.

    Algunos resultados de expresiones son objetos en lugar de valores simples. En este caso el objeto semuestra como una referencia a objeto , seguida por el tipo del objeto y se muestraun pequeo icono representativo del objeto junto a la lnea de resultado (figura 14).

    Figura 14: Un objeto como resultado de una expresin en la zona de cdigo.

    Si el resultado es una String, el valor de la String es presentado como resultado, pero tambin podrver el pequeo icono (ya que las Strings son objetos).

    Las siguientes son algunas expresiones que puede probar para crear objetos:

    new Student()

  • 8/14/2019 Tutorial Spanish BlueJ201

    24/38

    Utilizando la zona de cdigo.

    Copyright de la versin original M. Klling 23

    "mermelada".substring(3,8)

    new java.util.Random()

    "hola" + "mundo"

    El pequeo icono del objeto puede utilizarse ahora para continuar trabajando con el objeto resultante. Sepuede apuntar al icono y arrastrarlo al banco de objetos (Figura 15). Esto situar el objeto en el banco, dondeestar disponible para futuras llamadas a sus mtodos, bien va su men emergente o bien va zona de cdigo.

    Figura 15: Arrastrando el objeto al banco de objetos.

    6.4 Inspeccionando objetos

    Sumario: Para inspeccionar objetos de resultado en la zona de cdigo, hacer doble clic en elpequeo icono de objeto.

    Si quiere inspeccionar un objeto obtenido como resultado de una expresin en la zona de cdigo,puede hacerlo sin situar el objeto en el banco de objetos: puede simplemente hacer doble clic en elicono del objeto para abrir el inspector de objetos habitual.

    6.5 Ejecutando sentencias

    Sumario: Las sentencias que se introducen en la zona de cdigo, son ejecutadas.

    Puede tambin utilizar la zona de cdigo para ejecutar sentencias (es decir instrucciones Java que noretornan un valor). Pruebe por ejemplo esto:

    System.out.println("Ensalada de pepino");

    System.out.println(new java.util.Random().nextInt(10));

    Las sentencias se evalan y ejecutan correctamente sin necesidad de poner punto y coma al final.

    6.6 Sentencias multilnea y secuencias de sentencias

    Sumario: Para introducir sentencias multilnea use shift-enter al final de cada lnea.

    Puede introducir secuencias de sentencias o sentencias que se extienden a lo largo de varias lneasutilizando shift-Enteral final de la lnea introducida. Utilizando el cursor se mover al principio de lasiguiente lnea, pero no ser (todava) ejecutada la entrada. Al final de la ltima lnea pulse Enter paraevaluar todas las lneas a la vez. Intente, por ejemplo, un ciclofor;

    For (int i=0; i

  • 8/14/2019 Tutorial Spanish BlueJ201

    25/38

    Utilizando la zona de cdigo.

    Copyright de la versin original M. Klling 24

    System.out.println(nmero: + i);

    }

    6.7 Trabajando con variables

    Sumario: pueden usarse variables locales en entradas multilnea nicas, los nombres de objetos en elbanco de objetos pueden ser utilizados como campos de instancias.

    En la zona de cdigo puede trabajarse de modo restringido con variables campos de la instancia yvariables locales-.

    Puede declarar variables locales en la zona de cdigo, pero esto es slo til como parte de secuenciasde sentencias multilnea, ya que las variables son eliminadas entre distintas entradas. Por ejemplo:puede introducir el siguiente bloque como una nica entrada multilnea, y funcionar como es deesperar.

    int sum;

    sum = 0;

    for (int i=0; i

  • 8/14/2019 Tutorial Spanish BlueJ201

    26/38

    Copyright de la versin original M. Klling 25

    7 Depuracin [Debugging].

    Esta seccin presenta los aspectos ms importantes de la funcionalidad de depuracin en BlueJ.Hablando con profesores de computacin, hemos odo muy a menudo el comentario de que serainteresante utilizar un depurador en el primer ao de enseanza, pero simplemente no hay tiempo parapresentarlo. Los estudiantes se pelean con el editor, el compilador y la ejecucin; no queda mstiempo para presentar otra complicada herramienta.

    Por esto hemos decidido hacer el depurador lo ms sencillo posible. El objetivo es tener un depuradorque pueda explicarse en 15 minutos, y que los estudiantes lo puedan usar de ah en adelante sinninguna instruccin adicional. Veamos si hemos tenido xito.

    Antes de nada, hemos reducido la funcionalidad de los depuradores tradicionales a tres tareas:

    Poner puntos de ruptura

    Avanzar paso a paso por el cdigo

    Inspeccionar variables.

    Como resultado, cada una de las tres tareas es muy sencilla. Ahora probaremos cada una de ellas.

    Para comenzar, abra el proyecto debugdemo, que se incluye en el directorio examples de ladistribucin. Este proyecto contiene unas pocas clases con el nico propsito de demostrar lafuncionalidad del depurador no tienen demasiado sentido por otro lado.

    7.1 Estableciendo puntos de ruptura [Breakpoints].

    Sumario: Para poner un punto de ruptura, pulsar en el rea de puntos de ruptura que est a laizquierda del texto en el editor.

    Poner un punto de ruptura le permite interrumpir la ejecucin en un determinado punto del cdigo.Cuando la ejecucin es interrumpida, puede investigar el estado de sus objetos. A menudo esto ayudaa entender que es lo que est sucediendo con su cdigo.

    El rea de puntos de ruptura est en el editor, a la izquierda del texto (Figura 13). Puede establecer unpunto de ruptura pulsando en ella. Aparecer un pequeo signo de stop para marcar el punto deruptura. Pruebe esto ahora. Abra la clase Demo, busque el mtodo loop, y ponga un punto de rupturaen algn punto del buclefor. En su editor debe aparecer el signo de stop

  • 8/14/2019 Tutorial Spanish BlueJ201

    27/38

    Estableciendo puntos de ruptura.

    Copyright de la versin original M. Klling 26

    Figura 16: Un punto de ruptura.

    Cuando se alcanza la lnea de cdigo que tiene asociado el punto de ruptura, la ejecucin se

    interrumpir. Probemos esto ahora.Cree un objeto de clase Demo y llame al mtodo loop con un parmetro de, digamos, 10. Tan prontocomo se alcanza el punto de ruptura, emerge la ventana del editor, mostrando la lnea de cdigo actualy emerge una ventana de depurador. Esto tiene un aspecto semejante a la Figura 17.

    Figura 17: La ventana del depurador.

    El resaltado en el editor muestra la lnea que ser ejecutada a continuacin. (La ejecucin se paraantes de que esta lnea sea ejecutada).

  • 8/14/2019 Tutorial Spanish BlueJ201

    28/38

    Estableciendo puntos de ruptura.

    Copyright de la versin original M. Klling 27

    7.2 Avanzando paso a paso por el cdigo.

    Sumario: Para dar un paso sobre el cdigo, use los botones Step y Step Into en el depurador.

    Ahora que hemos parado la ejecucin (lo que nos asegura de que el mtodo realmente se estaejecutando y que este punto en el cdigo efectivamente se ha alcanzado), podemos avanzar paso apaso por el cdigo y ver como progresa la ejecucin. Para hacer esto, pulse repetidas veces en elbotn Step en la ventana del depurador. Usted debe ver cambiar la lnea fuente en el editor (elresaltado se mueve con la lnea que se est ejecutando). Cada vez que usted pulsa el botn Step, seejecuta una nica lnea de cdigo y la ejecucin se para de nuevo. Observe tambin que los valores delas variables mostrados en la ventana del depurador cambian (por ejemplo el valor de sum). Por lotanto usted puede ejecutar paso a paso y observar qu sucede. Cuando se canse de esto, puede pulsaren el punto de ruptura de nuevo y eliminarlo, y entonces pulsar el botn Continue en el depuradorpara rearrancar la ejecucin y continuar normalmente.

    Probemos esto de nuevo con otro mtodo. Ponga un punto de ruptura en la clase Demo, mtodo

    carTest (), en la lnea que dicePlaces = myCard.seats();

    Llame al mtodo. Cuando el punto de ruptura se alcanza, usted esta a punto de ejecutar una lnea quecontiene una llamada al mtodo seats() en la clase Car. Pulsando Step dara un paso sobre la lneacompleta. Probemos Step Into esta vez. Si usted da un paso dentro [step into] de una llamada a unmtodo, entra en el mtodo y lo ejecuta lnea a lnea (no todo l como un nico paso). En este casousted es llevado dentro del mtodo seats() en la clase Car. Felizmente usted puede dar pasos por estemtodo hasta que llegue al final y volver al mtodo que lo ha llamado. Observe como el depuradormuestra cambios.

    Step y Step Into se comportan de modo idntico si la lnea actual no contiene una llamada a un

    mtodo.

    7.3 Inspeccionando variables.

    Sumario: Inspeccionar variables es fcil son mostradas automticamente en el depurador.

    Cuando depura su cdigo, es importante tener la capacidad de inspeccionar el estado de sus objetos(variables locales y variables de instancia).

    Hacerlo es trivial la mayor parte de esto ya ha sido visto. No necesita mandos especiales parainspeccionar variables; las variables estticas, variables de instancia del objeto actual y variableslocales del mtodo actual son siempre mostradas y actualizadas automticamente.

    Puede seleccionar mtodos en la secuencia de llamadas para ver variables de otros objetos y mtodosactualmente activos. Pruebe, por ejemplo, un punto de ruptura en el mtodo carTest() de nuevo. En laparte izquierda de la ventana del depurador, ve usted la secuencia de llamadas. Actualmente muestra

    Car.seats

    Demo.carTest

    Esto indica que Car.seats ha sido llamado por Demo.carTest. Puede usted seleccionarDemo.carTest en esta lista para inspeccionar el cdigo fuente y los valores actuales de lasvariables en este mtodo.

    Si da un paso rebasando la lnea que contiene la instruccin newCar(...), puede observar que el

    valor de la variable local mycarse muestra como . Todos los valores de tipos objeto

  • 8/14/2019 Tutorial Spanish BlueJ201

    29/38

    Estableciendo puntos de ruptura.

    Copyright de la versin original M. Klling 28

    (excepto para las Strings) se muestran de esta manera. Puede inspeccionar esta variable haciendodoble clic sobre ella. Esto abrir una ventana de inspeccin de objeto idntica a las descritasanteriormente (seccin 4.1). No hay diferencia entre inspeccionar objetos aqu e inspeccionar objetosen el banco de objetos.

    7.4 Detener y terminar.

    Sumario: Para parar una ejecucin temporal o permanentemente puede usarse Halt y Terminate.

    En ocasiones un programa funciona durante un largo periodo de tiempo y usted se pregunta si todoestar bien. Puede ser que haya un bucle infinito, puede que simplemente necesite todo ese tiempo.Bien, podemos comprobarlo. Llame al mtodo longloop() de la clase Demo. Este tarda un ciertotiempo.

    Ahora queremos saber qu es lo que est pasando. Si no se encuentra ya en la pantalla, muestre la

    ventana del depurador. (A propsito, pulsar en el smbolo que gira indicando que la mquina estafuncionando durante la ejecucin es un atajo para mostrar el depurador).

    Ahora pulse el botnHalt. La ejecucin se interrumpe del mismo modo que si hubisemos alcanzadoun punto de ruptura. Ahora puede dar un par de pasos, observar las variables y ver que todo esta bien simplemente necesita un poco ms de tiempo para terminar. Puede pulsar Continue y Haltvariasveces para ver cuan rpido est contando. Si no quiere usted continuar (por ejemplo, descubre querealmente est en un ciclo infinito) simplemente pulse Terminate para terminar por completo laejecucin. Terminate no debera usarse muy frecuentemente puede dejar objetos que estnperfectamente bien escritos en un estado inconsistente al terminar la ejecucin de la mquina, por loque es recomendable usarlo slo como un mecanismo de emergencia.

  • 8/14/2019 Tutorial Spanish BlueJ201

    30/38

    Copyright de la versin original M. Klling 29

    8 Creando aplicaciones autnomas ("stand-alone").

    Sumario: Para crear una aplicacin autnoma use Project Create Jar File...BlueJ puede crear ficheros ejecutables jar. Los ficheros ejecutables jar pueden ser ejecutados enalgunos sistemas haciendo doble clic en el fichero (por ejemplo en Windows y MacOS X), o medianteel mando java jar .jar (Unix o DOS).

    Probaremos esto con el proyecto ejemplo hello. bralo (est en el directorio de examples). Asegresede que el proyecto est compilado. Seleccione la funcin Create Jar File... del men Project.

    Se abre un cuadro de dilogo que le permite elegir el modo de almacenamiento (Figura 15). Elijajar file para crear un fichero jar ejecutable. Para hacer que el fichero jar sea ejecutable, debeespecificar tambin una clase principal. Esta clase debe tener definido un mtodo main vlido (con elprototipo public static void main(String[] args)).

    Figura 18: El dialogo "Export"

    En nuestro ejemplo, elegir la clase principal es fcil: slo hay una clase. Seleccione Hello en el menemergente. Si tiene otro proyecto, seleccione la clase que contenga el mtodo main que quiere quesea ejecutado.

    Normalmente, no incluir usted los ficheros fuentes en el fichero jar. Pero puede hacerlo si quieredistribuir tambin sus fuentes. (Puede usar el formato jar para, por ejemplo, enviar el proyectocompleto a alguien va e-mail en un nico fichero).

    Si ha configurado BlueJ para utilizar bibliotecas de usuario (bien va el parmetro [setting]Preferences/Libraries, o bien utilizando el directorio lib/userlib), ver un rea titulada Include userlibraries en el centro del cuadro de dilogo. (Si no esta utilizando ninguna biblioteca, esta rea estarausente). Debe seleccionar todas las bibliotecas que su proyecto actual utilice.

    Pulse Continue. A continuacin ver un cuadro de dilogo de seleccin de ficheros que le permiteespecificar un nombre para el fichero jar a crear. Tecle hello y pulse Create.

    Si no tiene ninguna biblioteca que incluir, el fichero hello.jarser creado en este momento. Si tienebibliotecas, se crear in directorio llamado hello, y en su interior se encontrar el fichero jar hello.jar.

  • 8/14/2019 Tutorial Spanish BlueJ201

    31/38

    Creando aplicaciones autnomas.

    Copyright de la versin original M. Klling 30

    El directorio tambin contiene todas las bibliotecas necesarias. Su fichero jar espera encontrar todaslas bibliotecas referenciadas en su mismo directorio por tanto asegrese de mantener todos estosficheros jar juntos cuando los cambie de lugar.

    Puede hacer doble clic en el fichero jar slo si la aplicacin tiene un interfaz grfico (GUI). Nuestroejemplo usa entrada/salida de texto, por lo que debemos arrancarlo en un terminal de texto. Probemosahora a ejecutar el fichero jar.

    Abra un terminal o ventana de DOS. Una vez hecho esto, vaya al directorio donde salv el fichero jar(debe ver el fichero hello.jar). Asumiendo que Java est instalado correctamente en su sistema, debeusted poder escribir

    java jar hello.jar

    para ejecutar el fichero.

  • 8/14/2019 Tutorial Spanish BlueJ201

    32/38

    Copyright de la versin original M. Klling 31

    9 Creando applets.

    9.1 Poniendo en marcha un applet.

    Sumario: Para poner en marcha un applet, seleccione Run Applet en el men emergente del applet.

    BlueJ permite crear y ejecutar applets adems de aplicaciones. Hemos incluido un applet en eldirectorio de ejemplos de la distribucin. Primero, queremos probar la ejecucin de un applet. Abra elproyecto appletdemo de los ejemplos.

    Ver que este ejemplo tiene slo una clase; se llama CaseConverter*. El icono de la clase estmarcado (con el distintivo ) como un applet. Despus de compilar, seleccione el mando

    Run Appletdel men emergente de la clase.

    Aparece un cuadro de dilogo que le permite realizar varias elecciones (Figura 19).

    Figura 19: El dialogo "Run Applet"

    Puede ver que tiene la opcin de ejecutar el applet en un navegador [web browser] o en un visor deapplets [appletviewer] (o simplemente generar la pgina web sin ponerla en marcha). Deje los valorespor defecto y pulse OK. Tras unos escasos segundos, aparecer un visor de applets mostrando elapplet de conversin de capitalizacin.

    El visor de applets se instala conjuntamente con el J2SE SDK (su instalacin de Java), por lo que estgarantizada la coincidencia en su versin con el compilador de Java. En general causa menosproblemas de lo que hacen los navegadores. Puede que su navegador maneje una versin distinta de

    * N.T.-conversor de capitalizacin de letras [maysculas/minsculas]

  • 8/14/2019 Tutorial Spanish BlueJ201

    33/38

    Otras operaciones.

    Copyright de la versin original M. Klling 32

    Java y, dependiendo de qu versin de qu navegador use, puede causar problemas. De todos modosdebera funcionar bien con los navegadores ms normales.

    En los sistemas Microsoft Windows y MacOS, BlueJ utiliza el navegador establecido por defecto. En

    los sistemas Unix, el navegador se define en los parmetros [settings] de BlueJ.

    9.2 Creando un applet.

    Sumario: Para crear un applet, pulse el botn New Class y seleccione Applet como el tipo de clase.

    Despus de ver como ejecutar un applet, queremos crear uno nosotros mismos.

    Cree una nueva clase conAppletcomo tipo de clase (puede seleccionar el tipo en el cuadro de dilogoNew Class). Compile, y entonces ejecute el applet. Ya est!. No ha sido demasiado difcil, no?

    Los applets (como otras clases) se generan con un esqueleto por defecto que contiene algo de cdigo

    vlido. Para los applets, este cdigo muestra un applet sencillo con dos lneas de texto. Ahora puedeabrir el editor y editar el applet para insertar su propio cdigo.

    Ver que todos los mtodos comunes de los applets estn ah, cada uno con un comentario explicandosu propsito. Todo el cdigo del ejemplo est dentro del mtodopaint.

    9.3 Comprobando el applet.

    En algunas ocasiones puede ser til crear un objeto applet en el banco de objetos (como para lasclases normales). Puede hacerlo en el men emergente del applet se muestra el constructor. Nopuede ejecutar el applet completo desde el banco de objetos, pero puede llamar a algunos de sus

    mtodos. Esto puede ser til para comprobar aisladamente mtodos que ha escrito como parte de laimplementacin de su applet.

    Si pone puntos de ruptura en un applet, no tendrn efecto cuando corran en un visor de applets o en unnavegador Web. Esto es debido a que ambos, el visor de applets y el navegador Web, utilizan suspropias mquinas virtuales para ejecutar el applet, que no saben nada de los puntos de ruptura deBlueJ.

    Si quier utilizar puntos de ruptura y avanzar paso a paso en un applet, puede utilizar la claseAppletWindow, escrita por Michael Trigoboff. Esta clase proporciona un marco de aplicacin [frame]que le permite correr el applet directamente dentro de BlueJ, de manera que los mtodos dedepuracin normales funcionan. Puede encontrar esta clase en la seccin Resources del sitio web deBlueJ.

  • 8/14/2019 Tutorial Spanish BlueJ201

    34/38

    Copyright de la versin original M. Klling 33

    10 Otras operaciones.

    10.1 Abriendo paquetes no-BlueJ con BlueJ.

    Sumario: Pueden abrirse paquetes no-BlueJ con el mando Project: Open Non BlueJ...

    BlueJ le permite abrir paquetes existentes creados sin BlueJ. Para hacer esto, seleccioneProject - Open Non BlueJ... en el men. Seleccione el directorio que contiene los ficheros fuente Java,y entonces pulse el botn Open in BlueJ. El sistema le pedir confirmacin de que quiere abrir esedirectorio.

    10.2 Aadiendo clases existentes al proyecto.

    Sumario: Pueden copiarse clases a un proyecto desde fuera utilizando el mandoAdd Class from File....

    A menudo, usted puede querer utilizar en su proyecto BlueJ una clase que ha obtenido de algn sitio.Por ejemplo, un profesor puede dar una clase Java para que los estudiantes la usen en un proyecto.Puede incorporar fcilmente una clase existente su proyecto seleccionandoEdit - Add Class From File en el men. Esto le permitir seleccionar un fichero fuente Java (connombre terminado en .java) para ser importado.

    Cuando se importa la clase al proyecto, se hace una copia que se almacena en el directorio actual del

    proyecto. El efecto es exactamente el mismo que si usted hubiese creado una clase nueva y escritotodo su cdigo.

    Una alternativa es aadir el fichero fuente de la clase al directorio desde fuera del BlueJ. La prximavez que se abra el proyecto, la clase ser incluida en el diagrama del proyecto.

    10.3 Llamando a "main" y a otros mtodos estticos.

    Sumario: Los mtodos estticos pueden ser llamados desde el men emergente de la clase.

    Abra el proyecto hello del directorio examples. La nica clase en el proyecto (la clase Hello) define

    un mtodo principal estndar.Pulse el botn derecho sobre la clase y ver que el men incluye no slo el constructor de la clase,sino que tambin el mtodo esttico main. Puede llamar ahora directamente al main desde este men(sin crear primero un objeto).

    Todos los mtodos estticos pueden ser llamados de este modo. El mtodo principal estndar esperarecibir un array de Strings como argumento. Puede pasar un array de Strings usando la sintaxisestndar de Java para los arrays de constantes. Por ejemplo, puede pasar

    {uno, dos, tres}

    (incluyendo las llaves) al mtodo. Prubelo!

  • 8/14/2019 Tutorial Spanish BlueJ201

    35/38

    Otras operaciones.

    Copyright de la versin original M. Klling 34

    Nota marginal: En Java estndar, los arrays de constantes no pueden ser usados como argumentos enllamadas a mtodos. Slo pueden ser utilizados como inicializadores. En BlueJ, para permitir llamadasinteractivas a los mtodos principales estndar, permitimos el paso de arrays de constantes comoparmetros.

    10.4 Generando documentacin.

    Sumario: Para generar documentacin de un proyecto, seleccione Project Documentation del menTools.

    Puede generar documentacin para su proyecto en el formato estndar de javadoc desde dentro deBlueJ. Para hacer esto, seleccione Tools Project Documentation en el men. Esta funcin generarla documentacin para todas las clases en un proyecto a partir del cdigo fuente de las mismas yabrir el navegador para mostrarla.

    Tambin puede generar y ver la documentacin para una sola clase en el editor de BlueJ. Para haceresto, abra el editor y use el men emergente en su barra de herramientas. Cambie la seleccin de

    Implementation a Interface. Esto mostrar la documentacin al estilo de javadoc (el interfaz de laclase) en el editor.

    10.5 Trabajando con bibliotecas.

    Sumario: La API de clases estndar de Java puede consultarse seleccionandoHelp - Java Standard Libraries.

    Frecuentemente, cuando se escribe un programa en Java, se necesita hacer referencia a la bibliotecasestndar de Java. Puede abrir un navegador mostrando la documentacin de la API de JDKseleccionandoHelp - Java Standard Libraries en el men (si se encuentra conectado a la red).

    Tambin se puede instalar y utilizar la documentacin del JDK localmente (offline). Los detalles paraello estn explicados en la seccin de ayuda del sitio de BlueJ en la red2.

    10.6 Creando objetos a partir de clases de biblioteca.

    Sumario: Para crear objetos a partir de clases de biblioteca, use Tools Use Library Class.

    BlueJ tambin ofrece una funcin para crear objetos a partir de clases que no son parte de su proyecto,sino que se encuentran definidas en la biblioteca. Puede, por ejemplo, crear objetos de clase String oArrayList. Esto puede ser muy til para experimentar de un modo rpido con estos objetos debiblioteca.

    2NOTA DEL TRADUCTOR: No es precisamente inmediato encontrar esta informacin en la red, y como realmente nopuede ser ms sencillo, pues ah va:

    Evidentemente debe disponer de una copia local de la documentacin. Si no es as, puede descargarla dehttp://java.sun.com/j2se. Seleccione Preferences en el men Tools. Seleccione la solapa Miscellaneous. Ver uncampo etiquetado como "JDK documentacin URL". Debe poner ah la direccin URL de su copia local de ladocumentacin (p. ej. -en una instalacin particular para Windows- C:\jdk1.5.0\docs\api\index.html ).

  • 8/14/2019 Tutorial Spanish BlueJ201

    36/38

    Otras operaciones.

    Copyright de la versin original M. Klling 35

    Puede crear objetos de biblioteca seleccionando Tools Use Library Class del men. Surgir uncuadro de dilogo que le solicitar que introduzca un nombre de clase que la determinecompletamente, como por ejemplo java.lang.String. (Observe que debe introducir el nombrecompletamente determinado, esto es el nombre incluyendo los nombres de paquetes que contienen a

    la clase).El campo de introduccin de texto tiene asociado un men emergente que muestra las clasesutilizadas recientemente. Una vez que se ha introducido un nombre de una clase, pulsar la tecla Entermostrar todos los constructores y mtodos estticos de la clase en una lista en el cuadro de dilogo.Seleccionndolos en la lista, pueden ser invocados cualquiera de estos constructores o mtodosestticos.

    La invocacin procede como cualquier otro constructor o llamada a mtodo.

  • 8/14/2019 Tutorial Spanish BlueJ201

    37/38

    Copyright de la versin original M. Klling 36

    11 Slo los sumarios.

    Comenzando

    1. Para abrir un proyecto, seleccione Open del men Project

    2. Para crear un objeto, seleccione un constructor del men emergente de la clase.

    3. Para ejecutar un mtodo, seleccinelo en el men emergente del objeto.

    4. Para editar el cdigo fuente de una clase, haga doble-clic en su icono.

    5. para compilar una clase, pulse el botn Compile del editor. Para compilar un proyecto, pulseel botn Compile en la ventana del proyecto.

    6. Para obtener ayuda para un mensaje de error de compilacin, pulse la interrogacin que est

    prxima al mensaje de error.

    Haciendo un poco ms

    7. La inspeccin de objetos permite realizar una depuracin sencilla al mostrar el estado internode un objeto.

    8. Se puede pasar un objeto como parmetro a un mtodo pulsando en el icono del objeto.

    Creando un nuevo proyecto

    9. Para crear un proyecto seleccioneNew... del men Project.

    10.Para crear una clase, pulse el botnNew Class y especifique el nombre de la clase.11.Para crear una flecha, pulse en el botn de flecha y arrstrela en el diagrama, o simplemente

    escriba el cdigo en el editor.

    12.Para eliminar una clase o una flecha, seleccione la funcinRemove de su men emergente.

    Utilizando la zona de cdigo.

    13.Para comenzar a utilizar la zona de cdigo seleccione Show Code Paden el men View.

    14.Para evaluar expresiones Java, simplemente escrbalas en la zona de cdigo.

    15.Para transferir objetos de la zona de cdigo al banco de objetos, arrastre el pequeo icono del

    objeto.16.Para inspeccionar objetos de resultado en la zona de cdigo, hacer doble clic en el pequeo

    icono de objeto.

    17.Las sentencias que se introducen en la zona de cdigo, son ejecutadas.

    18.Para introducir sentencias multilnea use shift-enteral final de cada lnea.

    19.pueden usarse variables locales en entradas multilnea nicas, los nombres de objetos en elbanco de objetos pueden ser utilizados como campos de instancias.

    20.Para hacer uso del historial de mandos, utilice las teclas de flecha arriba y abajo.

  • 8/14/2019 Tutorial Spanish BlueJ201

    38/38

    Otras operaciones.

    Depuracin [Debugging].

    21.Para poner un punto de ruptura, pulsar en el rea de puntos de ruptura que est a la izquierdadel texto en el editor.

    22.Para dar un paso sobre el cdigo, use los botones Step y Step Into en el depurador.

    23. Inspeccionar variables es fcil son mostradas automticamente en el depurador.

    24.Para parar una ejecucin temporal o permanentemente puede usarseHalty Terminate.

    Creando aplicaciones autnomas [stand-alone].

    25.Para crear una aplicacin autnoma use Project Create Jar File...

    Creando applets.

    26.Para poner en marcha un applet, seleccioneRun Appleten el men emergente del applet.

    27.Para crear un applet, pulse el botnNew Class y seleccioneAppletcomo el tipo de clase.

    Otras operaciones.

    28.Pueden abrirse paquetes no-BlueJ con el mando Project: Open Non BlueJ...

    29.Pueden copiarse clases a un proyecto desde fuera utilizando el mandoAdd Class from File....

    30.Los mtodos estticos pueden ser llamados desde el men emergente de la clase.

    31.Para generar documentacin de un proyecto, seleccione Project Documentation del menTools.

    32.La API de clases estndar de Java puede consultarse seleccionandoHelp - Java Standard Libraries.

    33.Para crear objetos a partir de clases de biblioteca, use Tools Use Library Class.