Escolar Documentos
Profissional Documentos
Cultura Documentos
Verso 1.4
para BlueJ Verso 1.2.x
Michael Klling
Mrsk Insitute
University of Southern Denmark
ndice
1
Prefcio
1.1
Sobre o BlueJ........................................................................................................4
1.2
Escopo e audincia..................................................................................................4
1.3
1.4
Feedback...............................................................................................................4
Instalao
2.1
Instalao no Windows............................................................................................5
2.2
2.3
2.4
Problemas na instalao...........................................................................................6
3.1
Iniciando o BlueJ....................................................................................................7
3.2
3.3
Criando objetos......................................................................................................8
3.4
Execuo ............................................................................................................ 10
3.5
3.6
Compilao......................................................................................................... 12
3.7
14
4.1
Inspecionar.......................................................................................................... 14
4.2
18
5.1
5.2
Criando as classes................................................................................................. 18
5.3
Criando as dependncias......................................................................................... 18
5.4
Removendo elementos........................................................................................... 19
Depurando
20
6.1
6.2
6.3
Inspecionando as variveis...................................................................................... 22
6.4
Copyright M. Klling
ndice
7
24
Creating applets
26
8.1
Running an applet................................................................................................ 26
8.2
8.3
Other Operations
28
9.1
9.2
9.3
9.4
Generating documentation...................................................................................... 29
9.5
9.6
10
Copyright M. Klling
31
1 Prefcio
1.4 Feedback
muito bem vindo os comentrios, questes, correes, criticas e qualquer outro tipo de
retorno a respeito do software BlueJ ou sobre este material. Por favor, envie suas
observaes para Michael Klling (mik@mip.sdu.dk).
Copyright M. Klling
2 Instalao
Copyright M. Klling
Installation
2.2 Instalao no Macintosh
O BlueJ s pode ser executa no no MacOS X.
O programa de instalao para o MacOS chamado BlueJ-xxx.sit, onde xxx o nmero da
verso. Por exemplo, a verso 1.2.0 do BlueJ chamada de bluejsetup-120.exe. Voc pode
ter este arquivo fazendo o download a partir do site do BlueJ (http://www.bluej.org). Para
instalar, basta executar o programa.
Este arquivo pode ser descompactado com o StuffIt Expander. Vrios browser
descompactaro o arquivo. Se isto no ocorrer, de um duplo-click para descompact-lo.
Aps descompact-lo, voc ter uma pasta chamada BlueJ-xxx. Movimente est pasta para
a pasta de aplicaes (ou para onde voc quiser guardar). Nenhuma operao adicional
necessria para finaliza a instalao.
Uma janela ser exibida, permitindo voc escolher o diretrio de instalao e a verso do
JDK que ser utilizada pelo BlueJ. Importante: O caminho de diretrio do BlueJ (isto ,
nenhum dos diretrios pai) no podem conter espaos em seus nomes.
Click em Install. Ao final, BlueJ estar instalado.
Copyright M. Klling
ou
$ bluej examples/people
Copyright M. Klling
Sempre que mencionarmos o click com boto direito neste tutorial, usurios do Macintosh devem usar o
ctrl-click.
Copyright M. Klling
Ns queremos criar um objeto Staff, para isto voc deve usar o click com o boto direito
no cone Staff (que mostrar um menu como na Figura 2). O menu mostra dois
construtores para criar o objeto Staff, um com parmetros e outro sem. Primeiro, selecione
o construtor sem parmetros. Uma janela de dilogo, como na Figura 3, aparecer.
Este dilogo pede um nome para o objeto a ser criado. Ao mesmo tempo, um nome padro
(staff_1) sugerido. Este nome padro bom para este exemplo, portanto apenas click no
boto OK. Um objeto Staff ser criado.
Copyright M. Klling
Voc pode ter observado que a classe Person recebeu uma indicao de <<abstract>> (
uma classe abstrata). Voc observar (se tentar fazer isto) que voc no consegue criar
objetos de classes abstratas (A especificao da linguagem Java define que isto no
possvel).
3.4 Execuo
Sumrio: Para executar um mtodo, selecione-o atravs do menu popup.
Agora que voc criou um objeto, voc pode executar suas operaes pblicas (em Java
chamamos operaes de mtodos). Click com o boto direito no objeto e um menu com as
operaes disponveis aparecer (Figura 5). O menu mostra os mtodos disponveis para
este objeto e duas operaes especiais fornecidas pelo ambiente (Inspect e Remove). Ns
as discutiremos mais tarde. Por agora, vamos focar nos outros mtodos.
Copyright M. Klling
10
Copyright M. Klling
11
para
return "room " + room;
BlueJ possui suporte integral ao Java, portanto no existe nada de especial em como
implementar suas classe.
3.6 Compilao
Sumrio: Para compilar uma classe, click no boto Compile no editor de texto. Para
compilar um projeto, click no boto Compile na janela de visualizao do projeto.
Aps inserir o texto (antes que qualquer outra coisa), verifique a janela de projeto (a janela
principal). Voc observar que o cone da classe Staff foi alterado: Ele est com uma lista
agora. Esta lista no cone sinaliza que a classe ainda no foi compilada desde a ultima
alterao. Retorne para o editor de cdigo fonte.
Nota: Voc pode querer saber porque os cones das classes no estavam com a lista
quando o projeto foi aberto a primeira vez. Isto ocorreu porque as classes j tinham
sido compiladas anteriormente. Normalmente os projetos distribudos com o BlueJ
no so previamente compilados, portanto voc deve encontrar a partir de agora
vrios cones de classes com listas.
Na toolbar, no topo do editor de cdigo fonte, existem alguns botes que corresponde as
funes mais utilizadas. Uma delas o Compile. Esta funo permite compilar a classe
diretamente. Click no boto Compile. Se voc no cometeu nenhum erro, uma mensagem
ser mostrada na rea na parte de baixo da janela do editor informando que a classe foi
compilada com sucesso. Se voc cometeu algum erro de sintaxe, a linha de erro ser
destacada e uma mensagem com a descrio do erro ser mostrada na rea de informao.
(Se a sua primeira compilao ocorreu com sucesso, tente introduzir algum erro de sintaxe
agora como a ausncia de um ponto-e-vrgula e compile novamente para voc como os
erros de sintaxe so indicados).
Aps voc ter compilado a classe com sucesso, feche o editor.
Nota: No necessrio salvar explicitamente o cdigo fonte de sua classe. Os cdigos
fontes so automaticamente salvos no momento mais apropriado (por exemplo,
Copyright M. Klling
12
A toolbar da janela do projeto tambm possui o boto Compile. Este boto aciona a
compilao de todas as classes do projeto (na verdade, ele determina quais as classes
precisam ser recompiladas e recompila-as na ordem correta). Tente fazer isto mudando
duas ou mais classes (de modo a ver duas ou mais classes com as listas no diagrama de
classes) e ento acione o boto Compile. Se algum erro for detectado em uma das classes
compiladas, o editor ser aberto e a localizao do erro ser indicada.
Voc pode observar que a bancada de objetos est vazia outra vez. Os objetos sero
sempre removidos quando a sua classe for recompilada.
Neste estgio, os textos de ajuda ainda no esto disponveis para todas as mensagens de
erro. Muitos deles ainda devem ser escritos. Apesar disto vale a pena tentar pois muitos j
foram cadastrados. Os restantes sero disponibilizados nas verses futuras do BlueJ.
Copyright M. Klling
13
4.1 Inspecionar
Sumrio: inspecionar objetos permite um nvel de depurao atravs da verificao dos
estados internos do objeto.
Quando voc executou mtodos de um objeto, voc pode ter observado que a operao
Inspect estava disponvel junto com os mtodos definidos pelo usurio(Figura 5). Esta
operao permite verificar os estado das variveis de instncia (fields) de um objeto.
Tente criar um objeto com alguns valores definidos pelo usurio (por exemplo, um objeto
Staff com parmetros para o mtodo construtor). Selecione ento o Inspect no menu do
objeto. Um dilogo mostra os campos do objeto, seus tipos e seus valores (Figura 9).
Inspeo til por ser uma forma rpida de verificar se uma mutator operation (uma
operao de mudana de estado do objeto) foi executada corretamente. Assim, a inspeo
uma ferramenta de verificar e eliminar erros simples.
No exemplo do objeto Staff, todos os atributos so de tipos simples (no so objetos e
nem Strings). O valor destes tipos pode ser mostrado diretamente. Voc pode
imediatamente ver se o construtor fez ou no as atribuies corretamente.
Nos casos mais complexos, os valores dos campos podem ser referencias para objetos
definidos pelo usurio. Para ver um exemplo, ns vamos usar um outro projeto. Abra o
projeto chamado people2, que est includo na distribuio padro do BlueJ. O people2
pode ser visto na Figura 10. Como voc pode ver, este segundo exemplo possui uma
Copyright M. Klling
14
Para o nosso prximo teste inspecionar o valor de um objeto que atributo de outro
crie um objeto Staff e ento acione o mtodo setAddress deste objeto (voc encontrar o
mtodo no menu popup do objeto Person). Entre com o endereo. Internamente o cdigo
do objeto Staff cria um objeto da classe Address e armazena-o no atributo address.
Agora, inspecione o objeto Staff. O resultado desta inspeo est na in Figura 11. Nos
atributos do objeto Staff temos agora o address. Como voc pode ver, o valor dele
mostrado como <object reference> pois ele um objeto complexo e definido pelo usurio
e seu valor no pode ser mostrado diretamente na lista. Para examinar o endereo,
selecione o campo address na lista e click o boto Inspect na janela de dilogo. (Voc
tambm pode dar um duplo-click no campo address) Uma outra janela de inspeo ser
aberta e ela dever mostrar em detalhes o objeto Address (Figura 12).
Copyright M. Klling
15
Copyright M. Klling
16
Copyright M. Klling
17
Copyright M. Klling
18
Depurando
Voc pode adicionar as dependncias de forma grfica (diretamente no diagrama) ou de
forma textual no cdigo fonte. Se voc adicionar a seta no diagrama, o cdigo
automaticamente atualizado; se voc adicionar a dependncia no cdigo, o diagrama
tambm ser atualizado.
Para adicionar uma seta no diagrama, click no boto apropriado (setas duplas para
extends ou implements, seta simples para uses) e arraste a seta de uma classe
para a outra classe.
Adicionando uma seta de herana provoca a insero da definio de extends ou
implements na definio do cdigo fonte da classe (dependendo de qual tipo o
cdigo - classe ou interface).
Adicionar uma seta do tipo uses no altera imediatamente o cdigo fonte (a menos que
o alvo seja uma classe de um outro pacote. Neste caso gerado um comando importe, mas
ns no veremos isto nos nossos exemplos). Ter uma seta do tipo uses no diagrama
apontando para uma classe que no possui o cdigo fonte correspondente gerar uma
mensagem de aviso indicando que a relao do tipo uses foi declarada mas nunca foi
usada.
Adicionar a seta no cdigo fonte muito simples: basta digitar o cdigo que voc
normalmente escreveria. Assim que a classe for salva, o diagrama ser atualizado (lembrese sempre: fechando o editor sua classe ser salva).
Copyright M. Klling
19
Depurando
6 Depurando
Esta seo introduz um dos aspectos mais importantes a funcionalidade de depurao
no BlueJ. Nas conversas entre os professores de computao, ns sempre escutamos que
usar os depuradores no primeiro ano de ensino da computao seria muito bom, mas
normalmente no temos tempo suficiente introduzir o assunto. Os estudantes esforam-se
com o editor, como a compilao e com a execuo; Normalmente no temos tempo para
introduzir mais uma ferramenta e com complexidade.
Por este motivo decidimos criar um depurador o mais simples possvel. A meta foi ter um
depurador que pudesse ser explicado em cerca de 15 minuto, e que os estudantes
pudessem utiliz-lo sem muitas outras instrues. Vamos ver se tivemos sucesso.
Primeiramente, nos reduzimos as tradicionais funcionalidades dos depuradores em trs
diferentes tarefas :
Marcar pontos de parada no cdigo
Caminhar passo-a-passo no cdigo
Verificar os valores das variveis
Desta forma, cada uma das trs tarefas so muito simples. Nos vamos testar cada uma
delas.
Para iniciar, abra o projeto debugdemo, ele est includo no diretrio examples da
distribuio padro. Este projeto contem algumas classes com o propsito de
demonstramos como a funcionalidade de depurao Este exemplo no faz muito
sentido em nenhum outro contexto.
Copyright M. Klling
20
Depurando
Quando a linha de cdigo associada ao breakpoint for ser executada, a execuo ser
paralisada. Vamos tentar isto agora.
Crie um objeto da classe Demo e chame o mtodo loop com um parmetro, por exemplo
10. Quando a linha que contem o breakpoint estiver para ser executada, a janela do editor
ser mostrada, mostrando a linha de cdigo corrente, e a janela do depurador tambm ser
mostrada. Isto ser parecido com o que mostrado na Figura 14.
A linha em destaque no editor mostra qual linha ser executada a seguir (a execuo
parada antes da linha ser executada).
Copyright M. Klling
21
Depurando
6.2 Caminhando passo-a-passo no cdigo
Sumrio: Para um passo simples no seu cdigo, use os botes Step e Step Into no
depurador.
Neste momento nos temos o cdigo paralisado de sua execuo (que nos convence
realmente que o mtodo foi executado at o ponto que tnhamos marcado), e ns podemos
andar em passos-simples (single-step) pelo cdigo e ver o progresso da execuo do
cdigo. Para isto, click repetidamente no boto Step na janela do depurador. Voc deve ver
que a marca no editor est movimentando (a marca move atravs das linhas que vo sendo
executadas). Toda vez que voc clica no boto Step, uma linha de cdigo executada e a
execuo paralisada novamente. Perceba tambm que os valores das variveis mostradas
na janela do depurador mudam (por exemplo, o valor da varivel sum). Assim, voc pode
executar passo-a-passo o cdigo e ver o que acontece. Quando voc j estiver satisfeito,
voc pode remover o breakpoint clicando no cone. Para continuar a execuo, click no
boto Continue e a execuo continuar normalmente.
Vamos tentar novamente com outro mtodo. Marque o breakpoint na linha abaixo da
classe Demo, mtodo carTest()
places = myCar.seats();
Acione o mtodo. Quando o breakpoint for encontrado, voc estar no momento antes da
chamada do mtodo seats() da classe Car. Com um click em Step, voc ter a linha
executada sem entrar no detalhe do mtodo. Vamos tentar agora o Step Into. Se voc
acionar o step into, voc entrar no detalhe da execuo do mtodo e poder executar linha
a linha (diferente do passo-simples). Neste caso, voc ver a execuo do mtodo seats()
de dentro da classe Car. Voc poder passear pelo mtodo at que voc encontre o
comando end e retorne para o mtodo chamador. Perceba como a janela do depurador se
altera.
Step e Step Into comportam-se da mesma forma se a linha corrente no contem uma
chamada de mtodo.
Copyright M. Klling
22
Depurando
Isto indica que Car.seats foi chamado por Demo.carTest. Voce pode selecionar
Demo.carTest na lista para inspecionar o cdigo e os valores atuais das variveis deste
mtodo.
Se voc passar pela linha que contem o comando new Car(...) voc pode observar
que o valor da varivel local myCar foi mostrado como <object reference>. Todos os
valores do tipo objeto (exceto as Strings) so mostrados desta forma. Voc pode
inspecionar os valores das variveis deste objeto atravs de um duplo-click. Fazendo desta
forma uma janela de inspeo idntica as j descritas anteriormente ser aberta (seo
4.1). No h nenhuma diferena entre a inspeo de objetos descritas aqui da inspeo
dos objetos feitas na bancada de objetos.
Copyright M. Klling
23
Em nosso exemplo, escolher a classe principal fcil; h somente uma classe. Selecione
Hello no menu popup. Se voc tiver outros projetos, selecione a classe que contm o
mtodo main que voc deseja executar.
Geralmente, voc no incluiria seus fontes em um arquivo executvel. Mas voc pode fazlo, se voc quiser distribuir os fontes tambm.
Selecione o boto Continue. Em seguida voc ver a janela para escolha de arquivo que
permite que voc especifique o nome do arquivo do tipo jar a ser criado. Digite hello e
selecione o boto OK. A criao do arquivo executvel do tipo jar foi completada.
Voc pode executar o arquivo jar somente se a aplicao utiliza uma interface grfica.
Nosso exemplo usa a interface baseada em texto, portanto nos temos que aciona-lo em
uma janela com prompt de comando. Agora tente executar o arquivo jar
Copyright M. Klling
24
Depurando
Abra um terminal ou uma janela de prompt de comando. Ento v ao diretrio onde voc
salvou o arquivo jar. (voc deve verificar se o diretrio contm o arquivo hello.jar).
Supondo que o java foi instalado corretamente em seu sistema, voc deve ser capaz de
realizar o seguinte comando :
java -jar hello.jar
Copyright M. Klling
25
8 Criando applets
Voc ver que pode escolher entre rodar o applet em um browser ou em um visualizador
de applets (ou simplesmente gerar uma pgina web sem execut-lo). Deixe as opes com
os valores j selecionados e selecione o boto OK. Aps alguns segundos, o visualizador
applet ser exibido e mostrar o applet case converter.
O visualizador applet foi instalado junto com o seu JDK, portanto muito provvel que ele
seja da mesma verso do seu compilador Java. Isto geralmente evita os problemas que a
execuo em browsers. O seu browser pode possuir uma verso diferente de Java, e,
Copyright M. Klling
26
Creating Applets
dependendo da verso que o seu browser estiver utilizando, pode causar problemas.
Apesar disto, a maior parte dos browser deve funcionar corretamente.
Nos sistemas Microsoft Windows e MacOS, o BlueJ usa o browser default. Nos sistemas
Unix systems, o BlueJ possui em suas configuraes qual ser o browser a ser acionado.
Copyright M. Klling
27
9 Outras Operaes
Copyright M. Klling
28
Other operations
Todos os mtodos estticos podem ser acionados desta forma. O mtodo padro main
espera receber um array com as Strings como sendo o argumento. Voc pode passar um
array com String usando o padro de sintaxe Java para a declarao de array constantes.
Por exemplo, voc poder passar
{"one", "two", "three"}
Copyright M. Klling
29
Other operations
9.6 Criando objetos a partir da biblioteca de classes
Sumrio: Para criar objetos a partir de uma biblioteca de classes, utize o menu Tools
Use Library Class.
O BlueJ tambm oferece a funcionalidade de criar objetos de uma classe que no faz parte
do seu projeto, mas que esteja definida em uma biblioteca. Voc pode, por exemplo, criar
objetos de uma classe String ou ArrayList. Isto pode ser muito til para simulaes
simples do uso destes objetos.
Voc pode criar uma biblioteca atravs do menu Tools Use Library Class. Uma janela ser
exibida para voc entrar o nome qualificado da classe, como java.lang.String. (Perceba
que voce deve entrar com o nome complete, ou seja o nome da classe incluindo o nome
dos pacotes que contm a classe.)
O campo de entrada possui um combo-box associado para mostrar as classes utilizadas
recentemente. Uma vez que o nome da classe foi entrado, basta precionar Enter para
verificar todos os construtores e os mtodos estticos da classe entrada. Qualquer um
destes mtodos, construtores ou mtodos estticos, podem ser invocados atravs da
seleo deles na lista.
Este acionamento preceder qualquer outra chamada de mtodo ou do construtor da
classe.
Copyright M. Klling
30
10 Os sumrios
Iniciando o BlueJ
1. Para abrir um projeto, selecione Open no menu Project.
2. Para criar um objeto de uma classe, selecione o construtor no menu popup da classe
desejada.
3. Para executar um mtodo, selecione-o atravs do menu popup.
4. Para editar o cdigo fonte de uma classe, de um duplo-click no cone da classe.
5. Para compilar uma classe, click no boto Compile no editor de texto. Para compilar
um projeto, click no boto Compile na janela de visualizao do projeto.
6. Para obter ajuda com as mensagens de erro durante a compilao, click no sinal de
interrogao que est prximo da mensagem de erro.
Depurando
14. Para marcar um ponto de parada, click na rea de breakpoint parte esquerda
editor de texto.
1 5 . Para um passo simples no seu cdigo, useos botes S t e p e Step I n t o
depurador.Inspecting variables is easy they are automatically displayed in
debugger.
16. Inspecionar variveis facil Elas so automaticamente mostradas no depurador.
17. Halt e Terminate podem ser utilizados para parar uma execuo temporariamente
permanentemente.
do
no
the
ou
Criando applets
19. Para executar uma applet, selecione Run Applet no menu popup da classe.
20. Para criar um applet, selecione o boto New Class e escolha o tipo da classe como
Applet .
Outras Operaes
Copyright M. Klling
31
Other operations
21. Pacotes feitos em outros ambientes podem ser abertos no BlueJ atraves do menu
Project: Open Non BlueJ....
22. Classes podem ser copiadas para um projeto utilizando o comando Add Class do
menu File...
23. Mtodos estticos podem ser acionados a partir do menu popup da classe.
24. Para gerar a documentao de um projeto, selecione Project Documentation no
menu Tools.
25. As classes das API padro do java podem ter sua documentao visualizada atravs
do Help - Java Standard Libraries.
26. Para criar objetos a partir de uma biblioteca de classes, utize o menu Tools Use
Library Class.
Copyright M. Klling
32