Ambiente BlueJ 1 Laboratório de Programação Dr. Italo Santiago Vega Curso de Graduação Ciência da Computação Pontifícia Universidade de São Paulo Copyright 1998-2004, Italo S. Vega
Ambiente BlueJ 1-1 Semana Data Tópico 1 2004-02-18 Apresentação: algoritmo e computação. Bibliografia básica. Critérios de Avaliação. 2 2004-02-25 Recesso: Carnaval 3 2004-03-03 Organização de programas. Ambiente de programação (Java). 4 2004-03-10 BlueJ: apresentação e computação com objetos.
Ambiente BlueJ 2 Conteúdo 1 BlueJ como Ferramenta de Programação 4 1.1 Ativação do Ambiente.......................... 6 1.2 Área de Modelagem............................ 8 1.3 Edição e Compilação de Classes..................... 10 1.3.1 Compilação............................ 12 2 Computação com Objetos 14
Ambiente BlueJ 3 Tópicos Apresentar o ambiente BlueJ. Exemplificar a construção de programas no BlueJ.
Ambiente BlueJ 4 1 BlueJ como Ferramenta de Programação O ambiente BlueJ foi desenvolvido como uma ferramenta para o ensino de modelagem com UML a 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. a 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.
Ambiente BlueJ 5 Exercício 4.1 SITE DO BLUEJ 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
Ambiente BlueJ 6 1.1 Ativação do Ambiente Serviços Área de Modelagem Espaço de Objetos Esta janela contém uma área de modelagem UML, botões de comandos e um espaço de objetos (na parte inferior).
Ambiente BlueJ 7 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 a seguir.
Ambiente BlueJ 8 1.2 Á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.
Ambiente BlueJ 9 Exercício 4.2 MODELAGEM COM CLASSES Seguindo o roteiro descrito no texto: Tarefa 4.2.1 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?
Ambiente BlueJ 10 1.3 Edição e Compilação de Classes
Ambiente BlueJ 11 Apenas para teste inicial, a Figura a seguir mostra a alteração a ser feita no texto de especificação da classe ContaCorrente.
Ambiente BlueJ 12 1.3.1 Compilação
Ambiente BlueJ 13 Exercício 4.3 EDIÇÃO E COMPILAÇÃO DE CONTAS-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?
Ambiente BlueJ 14 2 Computação com Objetos
Ambiente BlueJ 15 Classes e Objetos no BlueJ
Ambiente BlueJ 16 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 a seguir).
Ambiente BlueJ 17 Exercício 4.4 COMPUTAÇÃO E CONTAS-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.
Ambiente BlueJ 18 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.
Ambiente BlueJ 19 Execução de um Método 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 a seguir. 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().
Ambiente BlueJ 20 Inspeção do Estado de um Objeto A inspeção do estado de um objeto pode ser feito como sugerido pela Figura a seguir.
Ambiente BlueJ 21 Exemplo de Visualização de Estado A Figura a seguir mostra o particular estado do objeto cc1 após a realização do serviço de depósito em conta. Observa-se que o atributo saldo armazena o valor 100.0, conforme a regra de depósito estabelecida no método depositar().
Ambiente BlueJ 22 Exercício 4.5 DIVERSAS CONTAS-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?
Ambiente BlueJ 23 Exercício 4.6 SAQUES E DEPÓSITOS EM CONTAS-CORRENTE Considerando a classe ContaCorrente do exercício anterior: Tarefa 4.6.1 Utilize o editor do ambiente e codifique o método sacar(): 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.
Ambiente BlueJ 24 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.)
Ambiente BlueJ 25 Exercício 4.7 CRITÉRIOS DE 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: Tarefa 4.7.1 Tarefa 4.7.2 Tarefa 4.7.3 mf = (p1 + p2) 2 Crie um novo projeto no BlueJ, denominado avaliacao. Na área de modelagem crie a classe Professor. 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; } } Tarefa 4.7.4 Utilizando a área de modelagem crie um objeto da classe Professor, batizando-o de ze.
Ambiente BlueJ 26 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ê?
Ambiente BlueJ 26-1 Semana Data Tópico 1 2004-02-18 Apresentação: algoritmo e computação. Bibliografia básica. Critérios de Avaliação. 2 2004-02-25 Recesso: Carnaval 3 2004-03-03 Organização de programas. Ambiente de programação (Java). 4 2004-03-10 BlueJ: apresentação e computação com objetos.