Pontifícia Universidade Católica de São Paulo
Departamento de Ciência da Computação
Apontamento 4
Fevereiro de 2004
LP: Laboratório de Programação
Prof. ISVega
Ambiente BlueJ
CONTEÚDO
4.1 BlueJ como Ferramenta de Programação
4.1.1 Ativação do Ambiente . . . . . . .
4.1.2 Área de Modelagem . . . . . . . .
4.1.3 Edição e Compilação de Classes .
4.2 Computação com Objetos . . . . . . . . .
Exercícios . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
5
8
4.1 BlueJ como Ferramenta de Programação
O ambiente BlueJ foi desenvolvido como uma ferramenta para o ensino de modelagem com UML1 e desenvolvimento de sistemas de software orientados a objetos
em Java. O site oficial do BlueJ é: http://www.bluej.org/. Nele, podem ser encontrados material de apoio, instituições que o utilizam para ensino, experimentos
complementares e o próprio ambiente em diversas plataformas.
4.1.1 Ativação do Ambiente
A ativação do ambiente BlueJ abre a janela mostrada na Figura 4.1.
1
Unified Modeling Language (UML) é uma notação apropriada para a descrição de vistas de modelos de sistemas de software. O BlueJ faz uso apenas da parte da notação UML referente à representação de classes de objetos.
1
Laboratório de Programação
Fevereiro de 2004
Área de Modelagem
Serviços
Espaço de Objetos
Figura 4.1: Janela de abertura do ambiente BlueJ.
Esta janela contém uma área de modelagem UML, botões de comandos e um espaço
de objetos (na parte inferior).
Projetos de Programação A criação de um novo projeto é feita ativando-se o comando Project→New... Este comando habilita o desenho de classes na área de modelagem, conforme ilustrado na Figura 4.2.
Figura 4.2: Situação do ambiente BlueJ após a criação de um
novo projeto.
O ícone na área de modelagem destaca a documentação do projeto. (A estrutura
deste documento será apresentada oportunamente.)
4.1.2 Área de Modelagem
A área de modelagem do BlueJ é utilizada para a elaboração de diagramas que
descrevem vistas estruturais de modelos de software, com ênfase nas classes de
objetos. Uma vez aberto um projeto, pode-se desenhar novas classes, como a classe
ContaCorrente por exemplo (Figura 4.3).
c
Copyright °1998-2004,
Dr. Italo S. Vega
4-2
Laboratório de Programação
Fevereiro de 2004
Figura 4.3: Inserção da classe ContaCorrente na área de modelagem.
Observa-se que o desenho da classe ContaCorrente encontra-se hachurado. Isto é
uma indicação feita pelo ambiente BlueJ. A indicação se refere à necessidade de se
compilar a classe, produzindo a sua versão binária em bytecode.
4.1.3 Edição e Compilação de Classes
Antes da compilação, entretanto, será feita uma alteração no texto que descreve
a classe ContaCorrente, de modo que seja possível a realização de depósitos de
valores. Com o botão direito sobre a classe ContaCorrente, pode-se abrir o editor
de classes (Figura 4.4).
Figura 4.4: Abertura do editor de classes: seleção de classe e
acionamento do botão direito.
Apenas para teste inicial, a Figura 4.5 mostra a alteração a ser feita no texto de
especificação da classe ContaCorrente.
c
Copyright °1998-2004,
Dr. Italo S. Vega
4-3
Laboratório de Programação
Fevereiro de 2004
Figura 4.5: Janela de edição mostrando o texto de uma classe
em Java.
A alteração introduz o atributo saldo e o método depositar() na classse
ContaCorrente:
public class ContaCorrente {
public double saldo;
public void depositar( double valor ) {
saldo = saldo + valor;
}
}
O atributo saldo será utilizado para armazenar o valor do saldo de uma particular
conta-corrente. O método de depósito, denominado depositar(), será executado
por uma particular conta-corrente quando houver uma solicitação para isto. Tal
solicitação é conhecida por envio de mensagem.
Compilação
Nesta mesma janela de edição, acionando-se o botão Compile, ativa-se a compilação
do texto presente no editor. Alternativamente, pode-se pressionar o botão direito
sobre a classe ContaCorrente (na área de modelagem) e selecionar a opção Compile
Figura 4.6.
Figura 4.6:
Seleção
ContaCorrente.
da
opção
que
compila
a
classe
Na ausência de erros de compilação, o desenho da classe ContaCorrente na área de
modelagem fica “liso”, indicando que a tradução para bytecode foi bem sucedida.
c
Copyright °1998-2004,
Dr. Italo S. Vega
4-4
Laboratório de Programação
Fevereiro de 2004
4.2 Computação com Objetos
Uma vez compilada, uma classe pode ser utilizada para fabricar objetos. No caso
da classe ContaCorrente, pode-se criar um objeto (também conhecido como instância de ContaCorrente), denominado cc1, a partir da própria área de modelagem
UML. Com o botão direito sobre a classe ContaCorrente, seleciona-se a opção new
ContaCorrente() (Figura 4.7).
Figura 4.7: Opção para criação de novos objetos da classe
ContaCorrente.
O ambiente BlueJ solicita um nome para o novo objeto (neste caso, indica-se cc1),
criando e inserindo-o no espaço de objetos (Figura 4.8). O BlueJ colore os objetos
com vermelho, deixando as classes em amarelo.
Figura 4.8: Os objetos criados são inseridos no espaço de objetos.
Mensagens Objetos realizam tarefas quando recebem mensagens, ou seja, quando
há uma solicitação para a realização de serviços. Este objeto, em particular, sabe
como realizar o serviço denominado depositar(). A lista de serviços que um objeto
sabe realizar pode ser determinada clicando-se o botão direito sobre ele.
Assim, para solicitar a realização do serviço depositar(), clica-se botão direito
sobre o objeto cc1, e, em seguida, o botão esquerdo sobre o serviço depositar().
Este procedimento irá resultar na realização da tarefa de depósito em conta-corrente
(Figura 4.9).
c
Copyright °1998-2004,
Dr. Italo S. Vega
4-5
Laboratório de Programação
Fevereiro de 2004
Figura 4.9: Momento de envio de uma mensagem para um objeto.
Métodos Quando se envia uma mensagem para um objeto, ele passa a executar
um método. A solicitação de um serviço corresponde ao envio de uma mensagem,
enquanto a realização do serviço corresponde à execução de um método. Um método
descreve como um objeto deverá realizar um serviço.
Como conseqüência da mensagem solicitando a realização do serviço de depósito,
o objeto cc1 passa a executar o método depositar(), que necessita do valor a ser
depositado. O ambiente BlueJ abre uma janela solicitando este valor, conforme
ilustrado na Figura 4.10.
Figura 4.10: Janela do ambiente BlueJ solicitando o valor a ser
depositado.
Uma vez informado o valor do depósito, pode-se inspecionar a situação do atributo
saldo, que deverá ser igual a 100, se este tiver sido o valor informado durante a
execução do método depositar(). A inspeção do estado de um objeto pode ser feito
como sugerido pela Figura 4.11.
Figura 4.11: Mecanismo para inspeção do estado de um objeto
no ambiene BlueJ.
c
Copyright °1998-2004,
Dr. Italo S. Vega
4-6
Laboratório de Programação
Fevereiro de 2004
A Figura 4.12 mostra o particular estado do objeto cc1 após a realização do serviço
de depósito em conta.
Figura 4.12: Estado da conta cc1 após o processamento da
mensagem depositar(100).
Observa-se que o atributo saldo armazena o valor 100.0, conforme a regra de depósito estabelecida no método depositar().
c
Copyright °1998-2004,
Dr. Italo S. Vega
4-7
Laboratório de Programação
Fevereiro de 2004
E XERCÍCIOS
4.1 S ITE
DO
B LUE J
O site oficial do Ambiente BlueJ é www.bluej.org.
Tarefa 4.1.1 Faça o download do BlueJ a partir do seu site oficial. Salve o arquivo
no diretório c:\bluej.
Tarefa 4.1.2
Instale o BlueJ, ativando o arquivo c:\bluej\bluejNNN.jar:
> java -jar c:\bluej\bluejNNN.jar
4.2 M ODELAGEM
Tarefa 4.2.1
COM
C LASSES
Seguindo o roteiro descrito no texto:
Crie um novo projeto no BlueJ, denominado conta.
Tarefa 4.2.2 Na área de modelagem crie a classe ContaCorrente. Porque seu
desenho está hachurado?
4.3 E DIÇÃO
E
C OMPILAÇÃO
DE
C ONTAS - CORRENTE
Seguindo o roteiro descrito
no texto:
Tarefa 4.3.1
Utilize o editor do ambiente para codificar o método depositar():
public class ContaCorrente {
public double saldo;
public void depositar( double valor ) {
saldo = saldo + valor;
}
}
Tarefa 4.3.2 Compile a classe ContaCorrente utilizando o BlueJ. Se a compilação
terminou com sucesso, como se modificou o desenho na área de modelagem?
4.4 C OMPUTAÇÃO
E
C ONTAS - CORRENTE
Seguindo o roteiro descrito no texto:
Tarefa 4.4.1
Utilize a área de modelagem e crie um objeto da classe
ContaCorrente, batizando-o de cc1.
Tarefa 4.4.2
Solicite para o objeto cc1, o depósito de 50.
Tarefa 4.4.3
Verifique se o saldo do objeto cc1 é igual â 50.
4.5 D IVERSAS C ONTAS - CORRENTE
Seguindo o roteiro descrito no texto:
Tarefa 4.5.1
Utilize a área de modelagem e crie dois objetos da classe
ContaCorrente, batizando-os de cc1 e cc2.
Tarefa 4.5.2
Solicite para o objeto cc1, o depósito de 50.
Tarefa 4.5.3
Solicite para o objeto cc1, o depósito de 70.
Tarefa 4.5.4 Verifique o saldo dos objetos cc1 e cc2. O que deveria ser feito para
que eles passassem a ter o mesmo valor de saldo?
c
Copyright °1998-2004,
Dr. Italo S. Vega
4-8
Laboratório de Programação
Fevereiro de 2004
4.6 S AQUES
E
Tarefa 4.6.1
Utilize o editor do ambiente e codifique o método sacar():
D EPÓSITOS EM C ONTAS - CORRENTE
ContaCorrente do exercício anterior:
Considerando a classe
public class ContaCorrente {
public double saldo;
public void depositar( double valor ) {
saldo = saldo + valor;
}
public void sacar( double valor ) {
saldo = saldo - valor;
}
}
Tarefa 4.6.2
Utilizando a área de modelagem crie um objeto da classe
ContaCorrente, batizando-o de cc1.
Tarefa 4.6.3 Solicite para o objeto cc1, o depósito de 50. Verifique se o saldo é
igual â 50 após o depósito.
Tarefa 4.6.4 Solicite para o objeto cc1, o saque de 30. Verifique se o saldo após o
saque está correto.
Tarefa 4.6.5 O que acontece quando o cc1.saldo == 20 e solicita-se um saque de 40 para cc1? Altere o método sacar() de modo que objetos da classe
ContaCorrente rejeitem a realização de serviços de saque que tornem o seu saldo
negativo.
Tarefa 4.6.6 Crie uma outra conta-corrente identificada por cc2. Faça um depósito de 100 nesta conta. Compare o estado de cc1 com o estado de cc2: eles são
iguais?
O que deve ser feito para tornar o estado destes objetos iguais? (Proponha uma
seqüência de mensagens para atingir tal objetivo.)
4.7 C RITÉRIOS
AVALIAÇÃO
Em uma escola, os alunos matriculados em um
período letivo realizam duas provas (p1 e p2) cujas notas são utilizadas pelos professores para calcular a sua média final:
DE
mf =
(p1 + p2)
2
Tarefa 4.7.1
Crie um novo projeto no BlueJ, denominado avaliacao.
Tarefa 4.7.2
Na área de modelagem crie a classe Professor.
Tarefa 4.7.3
Utilizando o editor do ambiente, codifique o método calcularMF():
public class Professor {
public void calcularMF( double p1, double p2 ) {
return ( p1 + p2 ) / 2.0;
}
}
c
Copyright °1998-2004,
Dr. Italo S. Vega
4-9
Laboratório de Programação
Fevereiro de 2004
Tarefa 4.7.4 Utilizando a área de modelagem crie um objeto da classe Professor,
batizando-o de ze.
Tarefa 4.7.5 Solicite para o objeto ze, a média final de um aluno com notas:
p1 = 4.5 e p2 = 6.5.
Tarefa 4.7.6 Crie um outro objeto da classe Professor chamado ana e faça a
mesma solicitação de cálculo de média final. A professora ana informa o mesmo
resultado que o professor ze? Porquê?
4.8 R EVISÃO
1
2
3
4
5
6
7
8
9
10
11
12
Horizontais: 3 Nome da notação utilizada na
área de modelagem do BlueJ. 7 Nome popular para as computações realizadas pelos
objetos.
10 Área principal de aplicação da
ferramente BlueJ. 11 Codificação de um algoritmo para uso de um objeto; descreve como
um serviço deverá ser realizado por um objeto. 12 Seu envio desencadeia a execução
de um método.
c
Copyright °1998-2004,
Dr. Italo S. Vega
Verticais: 1 São fabricadas pelas classes de
objetos. 2 Atua como uma variável interna
ao objeto, capaz de armazenar valores. 4 Dizse do desenho de uma classe no BlueJ, após
uma compilação bem sucedida. 5 Dispositivo
computacional responsável pela execução de
métodos. 6 Ato de traduzir um programa escrito em uma linguagem de programação de
alto nível para uma linguagem de baixo nível.
8 Prncipal elemento de modelagem utilizado
na área de modelagem; descreve a estrutura
estática e o comportamento dinâmico de uma
categoria de objetos. 9 Nome de linguagem
binária; é utilizada na compilação de programas escritos em Java.
4-10
Download

Ambiente BlueJ - PUC-SP