Name:
Location: Tuxtla Gutiérrez, Mexico

Friday, December 08, 2006

PROGRAMANDO CON EDITOR BLUE J

Tutorial de BlueJ



1 Prólogo

1.1 Acerca de BlueJ
Este tutorial es una introducción al uso del entorno de programación BlueJ. BlueJ es un
entorno de desarrollo para Java™ diseñado específicamente para la enseñanza en un
curso introductorio. Fue diseñado e implementado por el equipo de BlueJ en la
Universidad de Monash, Melbourne, Australia, y la Universidad de Southern Denmark,
Odense.

Más información sobre BlueJ se encuentra disponible en http://www.bluej.org.

1.2 Alcance y Audiencia
Este tutorial está hecho para las personas que desean familiarizarse con las
capacidades de este entorno de programación. Aquí no se explican las decisiones de
diseño que subyacen en la construcción del entorno o la investigación en la cual se basa.

Este tutorial no tiene la intención de enseñar Java. A los principiantes en la programación
en Java se les aconseja estudiar también con un texto introductorio o tomar un curso de
Java.

Este no es un manual de referencia comprensivo del entorno. Muchos detalles se
dejaron – se hace énfasis en una introducción breve y concisa, en vez de un cubrimiento
completo de características.

Cada sección comienza con una oración inicial de resumen. Esto permite a los usuarios
familiarizados con algunas partes decidir si ellos quieren leer o saltar cada parte en
particular. La sección 10 repite únicamente las líneas resumen como una referencia
rápida.

1.3 Copyright, licencia y redistribución
El Sistema BlueJ y su tutorial están disponibles libremente para cualquier persona y para
cualquier clase de uso. El sistema y su documentación pueden ser redistribuidos
libremente.

Ninguna parte del sistema BlueJ o su documentación pueden ser vendidos para obtener
lucro o incluidos en un paquete que sea vendido para lucro sin autorización escrita de los
autores.

El copyright © para BlueJ está reservado a M. Kölling y J. Rosenberg.


Prólogo

1.4 Realimentación
Comentarios, preguntas, correcciones, críticas y cualquier otra clase de realimentación
concerniente al sistema BlueJ o a su tutorial son bienvenidas y acogidas activamente.
Por favor escriba un correo electrónico a Michael Kölling ( mik@mip.sdu.dk ).


2 Instalación

BlueJ es distribuido en tres formatos diferentes: uno para sistemas Windows, uno para
MacOS, y uno para los otros sistemas. La instalación es fácil y rápida.

Prerrequisitos

Usted debe tener J2SE v1.3 ( o. JDK 1.3 ) o posterior instalado en sus sistema para
utilizar BlueJ. Si usted no tiene instalado el JDK usted puede descargarlo del sitio web de
Sun en http://java.sun.com/j2se/. En MacOS X, una versión reciente del JDK está
preinstalada – usted no necesita instalarla. Si usted encuentra una página de descargas
que ofrece el “JRE”( Java Runtime Environment ) y el “SDK” ( Software Development Kit
), usted debe descargar el “SDK” – el JRE no es suficiente.

2.1 Instalación en Windows
El archivo de distribución para los sistemas Windows es llamado bluejsetup-xxx.exe,
donde xxx es un número de versión. Por ejemplo, la distribución de Bluej versión 1.2.0 se
llama bluejsetup-120.exe. Usted puede tener este archivo en disco, o puede descargarlo
del sitio web de Bluej http://www.bluej.org. Ejecute este instalador.

El instalador le permite seleccionar un directorio para instalarlo. El también ofrece la
opción de instalar un acceso directo en el menú de inicio y en el escritorio.

Luego de finalizada la instalación, usted encontrará el programa bluej.exe en el directorio
de instalación de BlueJ.

La primera vez que usted lance BlueJ, él buscará el sistema Java ( JDK ). Si él
encuentra disponible más de un sistema Java ( e.j. usted tiene JDK 1.3.1 y JDK 1.4
instalado ), una ventana de diálogo le dejará seleccionar uno de ellos para utilizarlo. Si él
no encuentra un sistema Java, a usted se le solicitará que lo localice ( esto puede ocurrir
cuando un sistema JDK ha sido instalado, pero las correspondientes entradas de registro
han sido removidas ).

El instalador de BlueJ también instala un programa llamado vmselect.exe. Usando este
programa, usted puede cambiar posteriormente cuál versión de Java utiliza BlueJ.
Ejecute vmselect para ejecutar BlueJ con una versión diferente de Java.

La selección del JDK es almacenado para cada versión de BlueJ. Si usted tiene
diferentes versiones instaladas de BlueJ, usted puede usar una versión de BlueJ con el
JDK 1.3.1 y otra versión de BlueJ con JDK 1.4. Cambiar la versión de Java para BlueJ
hará que se cambie para todas las instalaciones de BlueJ de la misma versión para el
mismo usuario.


Instalación

2.2 Instalación en Macintosh
Por favor note que BlueJ se ejecuta solamente en MacOS X. El archivo de distribución
para MacOS es llamado BlueJ-xxx.sit, donde xxx es un número de versión. Por ejemplo,
la distribución de Bluej versión 1.2.0 se llama BlueJ-120.sit. Usted puede tener este
archivo en disco, o puede descargarlo del sitio web de Bluej http://www.bluej.org.

Este archivo puede ser descomprimido por el expansor StuffIt. Muchos navegadores
descomprimirán este archivo por usted. De otro modo, haciendo doble clic se
descomprimirá.

Luego de descomprimir, usted tendrá una carpeta llamada BlueJ-xxx. Mueva esta
carpeta dentro de su carpeta de Aplicaciones ( o donde quiera que a usted le guste
guardarlo ). No son necesarias posteriores instalaciones.

2.3 Instalación en Linux/Unix y otros sistemas
El archivo de distribución para MacOS es llamado BlueJ-xxx.sit, donde xxx es un número
de versión. Por ejemplo, la distribución de Bluej versión 1.2.0 se llama BlueJ-120.sit.
Usted puede tener este archivo en disco, o puede descargarlo del sitio web de Bluej
http://www.bluej.org.

El archivo de distribución general es un archivo jar ejecutable. Se llama bluej-xxx.jar,
donde xxx es el número de versión. Por ejemplo, la distribución de Bluej versión 1.2.0 se
llama bluej-120.jar. Usted puede tener este archivo en disco, o puede descargarlo del
sitio web de Bluej http://www.bluej.org.

Ejecute el instalador a través del siguiente comando. NOTA: Para este ejemplo, el
archivo utilizado es el de la distribución bluej-120.jar – usted necesita utilizar el nombre
del archivo que vaya a utilizar ( con el número de versión correcto ).

<>/bin/java -jar bluej-120.jar
<> es el directorio, donde el JDK fue instalado.

Una ventana se lanza, permitiéndole escoger el directorio de instalación de Bluej yla
versión del JDK utilizada para ejecutar BlueJ. Importante: El camino para BlueJ ( esto es,
cualquiera de los directorios padre ) no deben contener espacios en blanco.

Haga clic en Install. Luego de finalizar, BlueJ deberá estar instalado.

2.4 Problemas de Instalación
Si usted tiene algún problema, verifique la sección Frequently Asked Questions ( FAQ )
en el sitio web de BlueJ ( http://www.bluej.org/help/faq.html ) y lea la sección How To Ask
For Help ( http://www.bluej.org/help/ask-help.html ).


3 Comenzando – edit / compile / execute

3.1 Lanzando BlueJ
En Windows y MacOS, está instalado un programa llamado BlueJ. Ejecútelo.

En sistemas Unix el instalador guarda un script llamado bluej en el directorio de
instalación. Desde una interfaz GUI, haga doble clic en el archivo. Desde una línea de
comandos usted puede iniciar BlueJ con o sin un proyecto como argumento:

$ bluej

o

$ bluej examples/people


Figura 1: La ventana principal de BlueJ


Comenzando -edit / compile / execute

3.2 Abriendo un proyecto
Resumen: Para abrir un proyecto, seleccione Open del menú Project.

Los proyectos en BlueJ, como los paquetes estándar en Java, son directorios
conteniendo los archivos incluidos en el proyecto.

Luego de iniciar BlueJ, use el comando de menú Project – Open... para seleccionar y abrir
un proyecto.

Algunos proyectos de ejemplo están incluidos en la distribución estándar de BlueJ en el
directorio examples.

Para esta sección del tutorial, abra el proyecto people, el cual está incluido en este
directorio. Usted puede encontrar el directorio examples en el directorio instalación de
BlueJ. Luego de abrir el proyecto, usted debería ver algo similar a la ventana mostrada
en la Figura 1. La ventana puede no lucir exactamente como en su sistema, pero las
diferencias deberían ser menores.

3.3 Creando objetos
Resumen: Para crear un objeto, seleccione un constructor del menú emergente de la
clase.

Una de las características fundamentales de BlueJ es que usted no puede ejecutar
únicamente una aplicación directamente, sino que también debe interactuar directamente
con objetos simples pertenecientes a cualquier clase y, ejecutar sus métodos públicos.
Una ejecución en BlueJ normalmente se realiza creando un objeto y luego invocando
uno de los métodos del objeto. Esto es muy útil durante el desarrollo de una aplicación –
usted puede probar clases individualmente tan pronto como hayan sido escritas. No hay
necesidad de escribir primero la aplicación.

Nota al pie: Los métodos estáticos pueden ser ejecutados directamente sin crear primero
un objeto. Uno de los métodos estáticos puede ser “main”, así podemos hacer lo mismo
que normalmente pasa en las aplicaciones – iniciar una aplicación sólo ejecutando un
método estático main. Regresaremos a esto luego. Primero, haremos algunas otras cosas,
cosas más interesantes las cuales normalmente no pueden ser realizadas en los entornos
Java.
Los cuadros que se ven en la parte central de la ventana principal ( etiquetados
Database, Person, Staff y Student ) son iconos representando las clases involucradas en
esta aplicación. Usted puede obtener un menú con operaciones, aplicable a una clase
haciendo clic en el icono de la clase con el botón derecho del ratón (Macintosh: ctrl.-clic1)
( Figura 2 ). Las operaciones mostradas son operaciones new con cada uno de los

1 Donde se mencione clic derecho en este tutorial, los usuarios Macintosh deberían leerlo como ctrl.-clic.


Comenzando -edit / compile / execute

constructores definidos para esta clase ( primero ) seguidas por algunas operaciones
proporcionadas por el entorno.


Figura 2: Operaciones de Clase ( menú emergente )

Queremos crear un objeto Staff, así usted debería hacer clic derecho sobre el icono de
Staff ( lo cual hace que emerja el menú mostrado en la Figura 2 ). El menú muestra dos
constructores para crear un objeto Staff, uno con parámetros y otro sin ellos. Primero,
seleccione el constructor sin parámetros. Aparece la ventana de diálogo mostrada en la
Figura 3.


Figura 3: Creación de Objeto sin parámetros


Comenzando -edit / compile / execute

Esta ventana de diálogo pregunta por un nombre para el objeto a ser creado. Al mismo
tiempo, se sugiere un nombre por defecto ( staff_1 ). Este nombre por defecto es lo
suficientemente bueno por ahora, así que sólo haga clic en OK. Un objeto Staff será
creado.

Desde que el objeto ha sido creado, él se coloca en el área de objetos ( Figura 4 ). Esto
es todo lo necesario para crear un objeto: seleccione un constructor del menú de la
clase, ejecútelo y usted tendrá el objeto en el área de objetos.


Figura 4: Un Objeto sobre el área de Objetos

Usted puede haber notado que la clase Person está etiquetada como <>
( ésta es una clase abstracta ). Usted notará ( si lo trata de probar ) que no puede crear
objetos desde clases abstractas ( como la especificación del lenguaje Java lo define ).

3.4 Ejecución
Resumen: Para ejecutar un método, selecciónelo del menú emergente del objeto.

Ahora que ha creado un objeto, usted puede ejecutar sus operaciones públicas. ( Java
llama a las operaciones métodos. ) Haga clic con el botón derecho del ratón sobre el
objeto y emerge un menú con las operaciones del objeto ( Figura 5 ). El menú muestra
los métodos disponibles para este objeto y dos operaciones especiales proporcionadas
por el entorno ( Inspect y Remove ). Discutiremos esto luego. Primero, concentrémonos
en los métodos.


Comenzando -edit / compile / execute


Figura 5: El menú de Objeto

Usted ve que existen los métodos getRoom y setRoom los cuales configuran y retornan
el número de la habitación para este miembro del staff. Haga un llamado a getRoom.
Simplemente selecciónelo de su menú de objeto y éste se ejecutará. Una ventana de
diálogo aparece mostrando el resultado del llamado ( Figura 6 ). En este caso el nombre
dice “( unknown room )” porque no especificamos ninguna habitación para esta persona.


Figura 6: Ventana mostrando el resultado de una función

Los métodos heredados de una superclase están disponibles a través de un submenú.
En la parte superior del menú emergente de objeto existen dos submenús, uno para los
métodos heredados de Object y otro para los de Person ( Figura 5 ). Usted puede llamar
a los métodos de Person ( tales como getName ) seleccionándolos desde el submenú.
Pruébelo. Usted notará que la respuesta es igualmente vaga: se responde “( unknown
name )”, debido a que no hemos dado un nombre a la persona.

Ahora tratemos de especificar un número de habitación. Esto se mostrará como un
llamado que tiene parámetros. ( Los llamados a getRoom y getName tienen valores de
retorno, pero no parámetros ).

Llame la función setRoom seleccionándola del menú. Una ventana de diálogo aparece
solicitándole que digite un parámetro ( Figura 7 ).


Comenzando -edit / compile / execute


Figura 7: Ventana de Diálogo del Llamado a una función con parámetros

En la parte superior de esta ventana de diálogo se muestra la interfaz del método a ser
llamado ( incluyendo el comentario y la signatura ). Debajo de esto, existe un campo de
entrada de texto donde usted puede digitar el parámetro. La signatura al comienzo nos
indica se que espera un parámetro de tipo String. Digite la nueva habitación, como una
cadena de caracteres ( incluyendo las comillas ) en el campo de texto y haga clic en OK.

Esto es todo – debido a que este método no retorna un parámetro, no hay ventana
resaltada. Llame de nuevo al método getRoom para verificar que la habitación realmente
ha sido cambiada.

Practique la creación de objetos y el llamado de métodos por un rato. Trate llamando al
constructor con argumentos y llame algunos otros métodos hasta que se familiarice con
estas operaciones.

3.5 Editando una clase
Resumen: Para editar el archivo fuente de una clase, haga doble clic sobre su icono de
clase.

Hasta ahora hemos tratado solamente son una interfaz de objetos. Ahora es tiempo de
profundizar. Usted puede ver la implementación de una clase seleccionando Open Editor
desde las operaciones de la clase. ( Recuerde: haga clic derecho sobre el icono de la
clase y se muestran las operaciones de la clase. ) Hacer doble clic sobre la clase es un
atajo para la misma función. El editor no se describe en mucho detalle dentro de este
tutorial, pero no es muy importante para su uso. Los detalles del editor serán descritos
luego. Por ahora, abra la implementación de la clase Staff. Encuentre la implementación
del método getRoom. El retorna, como su nombre lo sugiere, el número de la habitación
del miembro del staff. Cambiemos el método agregando el prefijo “room” al resultado de
la función( así que el método retorna, “room M.3.18” en lugar de sólo “M.3.18” ).

Podemos hacer esto cambiando la línea

return room;

por

return "room " + room;


Comenzando -edit / compile / execute

BlueJ soporta instrucciones Java por completo y sin modificar, así que no hay nada
especial acerca de cómo implemente sus clases.

3.6 Compilación
Resumen: Para compilar una clase, haga clic en el botón Compile en el editor. Para
compilar un proyecto, haga clic en el botón Compile en la ventana de proyecto.

Luego de insertar el texto ( antes de hacer cualquier otra cosa ), verifique la vista del
proyecto ( ventana principal ). Usted notará que ha cambiado el icono de clase para la
clase Staff: él ahora está rayado. La apariencia rayada marca las clases que no han sido
compiladas desde el último cambio. Regrese al editor.

Nota al lado: Usted debe preguntarse por qué los iconos de clase no fueron rayados
cuando usted abrió por primera vez este proyecto. Esto es porque las clases en el
proyecto People fueron distribuidas estando compiladas. A menudo los proyectos en
BlueJ son distribuidos sin compilar, así que espere ver más clases sin compilar al abrir un
por primera vez un proyecto.
En la barra de herramientas en la parte superior del editor existen algunos botones con
funciones utilizadas frecuentemente. Uno de ellos es Compile. Esta función le permite
compilar esta clase directamente desde el editor. Ahora haga clic en el botón Compile. Si
usted no tuvo ninguna equivocación, un mensaje debería aparecer en el área de
información en la parte inferior del editor, notificándolo que la clase ha sido compilada. Si
usted cometió una equivocación que se basa en un error de sintaxis, la línea de error es
marcada y un mensaje de error se muestra en el área de información. ( En el caso de
que su compilación funcione correctamente la primera vez, trate de introducir un error de
sintaxis ahora – tal como un punto y coma faltante – y compile de nuevo, observe qué
aparece )

Luego de que ha compilado exitosamente la clase, cierre el editor.

Nota al lado: No hay necesidad de guardar explícitamente el código fuente de la clase. El
código fuente es guardado automáticamente donde sea apropiado ( e.j. cuando el editor se
cierra o antes de compilar una clase ). Usted puede guardar explícitamente una clase si
usted lo desea ( hay una función en el menú del editor de clase ), pero esto sólo se
necesita realmente si su sistema es inestable y frecuentemente se daña, y usted se
encuentra preocupado sobre la posible pérdida de su trabajo.
La barra de herramientas de la ventana de proyecto también tiene un botón Compile.
Esta operación compila el proyecto completo. ( De hecho, ella determina cuáles clases
necesitan ser recompiladas y luego recompila aquellas clases en el orden correcto. )
Trate de hacer esto cambiando dos o más clases ( de tal forma que dos o más clases
aparecen rayadas en el diagrama de clases ) y luego haga clic en el botón Compile. Si


Comenzando -edit / compile / execute

se detecta un error en una de las clases compiladas, el editor se abrirá y la localización
del error y el mensaje serán mostrados.

Usted puede notar que el área de objetos está vacía de nuevo. Los objetos son
removidos cada vez que la implementación se cambia.

3.7 Ayuda con errores del compilador
Resumen: Para obtener ayuda sobre un mensaje de error del compilador, haga clic en el
símbolo de interrogación cercano al mensaje de error.

Muy frecuentemente, los estudiantes principiantes tienen dificultad en entender los
mensajes de error del compilador. Nosotros tratamos de proporcionar alguna ayuda.

Abra el editor de nuevo, introduzca un error en el código fuente, y compile. Un mensaje
de error debería mostrarse en el área de información del editor. En la parte derecha del
área de información aparece un botón con el símbolo de interrogación ( ? ) en el cual
usted puede hacer clic para obtener más información acerca de este tipo de error
( Figura 8 ).


Figura 8: Un error del compilador y el botón de Ayuda ( Help )

En este momento, los textos de ayuda no están disponibles para todos los mensajes de
error. Algunos textos de ayuda aún se deben escribir. Pero es difícil hacerlo – muchos
errores ya se han explicado. El resto serán escritos e incluidos en una futura versión de
BlueJ.


4 Haciendo un poco más...

En esta sección cubriremos algunas otras cosas que usted puede hacer en el entorno.
Cosas que no son esenciales, pero utilizadas muy comúnmente.

4.1 Inspección
Resumen: Un objeto puede ser pasado como un parámetro a un llamado de un método
haciendo clic sobre el icono del objeto.

Cuando usted ejecuta métodos de un objeto, usted puede haber notado la operación
Inspect, la cual está disponible sobre los objetos además de los métodos definidos para
los usuarios ( Figura 5 ). Esta operación permite verificar el estado de las variables de
instancia ( “campos” o “fields” ) de objetos. Trate de crear un objeto con algunos valores
definidos por el usuario ( e.j. un objeto Staff que tiene parámetros en el constructor ).
Luego seleccione Inspect del menú de objeto. Una ventana de diálogo aparece
mostrando los campos de objeto, sus tipos y sus valores ( Figura 9 ).


Figura 9: Ventana de diálogo de Inspección

La inspección es útil para verificar rápidamente que una operación mutadora ( una
operación que cambia el estado de un objeto ) fue ejecutada correctamente. Así, la
inspección es una herramienta simple de traceo.

En el ejemplo con la clase Staff, todos los campos son tipos de datos simples
( cualesquiera que no sean objetos o cadenas de caracteres ). El valor de estos tipos
puede ser mostrado directamente. Usted puede ver inmediatamente si el constructor ha
realizados las asignaciones correctas.


Haciendo un poco más…

En casos más complejos, los valores de los campos pueden ser referencias a objetos
definidos por el usuario. Para un ejemplo de tal caso usaremos otro proyecto. Abra el
proyecto people2, el cual se incluye también en la distribución estándar de BlueJ. La
ventana del escritorio de people2 se muestra en la Figura 10. Como usted puede ver,
este segundo ejemplo tiene una clase Address además de las clases vistas previamente.
Uno de los campos en la clase Person es del tipo Address, definido por el usuario.


Figura 10: La Ventana del proyecto people2

Para lo siguiente que queremos probar – inspección con campos de objeto – cree un
objeto Staff y luego llame el método setAddress de este objeto ( usted lo encontrará en el
submenú de los métodos heredados de Person ). Digite una dirección. Internamente, el
código de Staff crea un objeto de clase Address y lo almacena en su campo address.

Ahora, inspeccione el objeto Staff. La ventana de diálogo de la inspección resultante se
muestra en la Figura 11. Los campos dentro del objeto Staff ahora incluyen address.
Como usted puede ver, su valor se muestra como

4 Comments:

Blogger Darwin Martinez said...

Te voy a decir algo para la proxima postea algo propio... bengo buscando informacion q ningun otro blog me a podido dar me meto a este y exactamente lo mismo.... cuales ejemplos aqui lo q hay es Copy-Paste.....

4:00 PM  
Anonymous free sample viagra said...

Hi, thank you for sharing this great info. Was just browsing through the net in my office and happened upon your blog. It is really very well written and quit comprehensive in explaining with a very simple language.

3:28 PM  
Anonymous Anonymous said...

[url=http://www.onlinecasinos.gd]Online casinos[/url], also known as accepted casinos or Internet casinos, are online versions of conventional ("confrere and mortar") casinos. Online casinos assign gamblers to disgrace a accommodate up and wager on casino games reason the Internet.
Online casinos typically make public away up championing calling odds and payback percentages that are comparable to land-based casinos. Some online casinos call the tune higher payback percentages as a countermeasure with a point of view task gismo games, and some bruit with reference to payout hand effectively audits on their websites. Assuming that the online casino is using an correctly programmed unsystematic epitomize up generator, recount games like blackjack sine qua non an established congress edge. The payout divvy up after these games are established lifestyle the rules of the game.
Innumerable online casinos hire out not at home unfashionable or reason their software from companies like Microgaming, Realtime Gaming, Playtech, Worldwide Game Technology and CryptoLogic Inc.

6:53 PM  
Anonymous Anonymous said...

[url=http://www.23planet.com]Online casinos[/url], also known as impressive casinos or Internet casinos, are online versions of standard ("chunk and mortar") casinos. Online casinos approve gamblers to corrupt lines in and wager on casino games from fore-part to foot the Internet.
Online casinos customarily set down on the market odds and payback percentages that are comparable to land-based casinos. Some online casinos depot forth higher payback percentages during particular automobile games, and some live on upon known payout class audits on their websites. Assuming that the online casino is using an aptly programmed indefinitely slews generator, catalogue games like blackjack preoccupy an established congress edge. The payout holding less than of these games are established to the nucleus the rules of the game.
Partition online casinos leave broken or tangible their software from companies like Microgaming, Realtime Gaming, Playtech, Cosmopolitan Chicane Technology and CryptoLogic Inc.

4:04 PM  

Post a Comment

<< Home