POO Aula 06 Implementar “Primeirão” em Java Eduardo Figueiredo 25 de Março de 2010 Exercício 2: Implementação Implementar “Primeirão” em Java a partir do diagrama de classes UML Entrega em dupla ou individual Final desta aula (14:45 hr) Não precisa compilar e executar Vou olhar apenas o código fonte Fique Atento aos Conceitos de OO Vou avaliar apenas: A identificação das classes de objetos Se as funcionalidades (métodos) fazem sentido para a classe que os declara Se os atributos (variáveis) fazem sentido para a classe que os declara Usar nomes significativos para classes, métodos e variáveis Uso de Comentários Usar comentários para explicar algo (ou se não souber implementar) Por exemplo, no corpo do método Comentários em Java // Esta linha está comentada /* Este trecho está comentado */ Instalando Java Já está instalado o JDK 1.6 C:\\Arquivos de Programas\Java Instalar/Usar um editor de textos TextPad (http://www.textpad.com/) Instalar no D:\\temp\textpad (criar pasta) Instalando Java Se necessário, setar variáveis de ambiente Path = C:\\Arquivos de Programas\Java\[seu-java]\bin Classpath = D:\\temp\\[seu-nome] Variáveis de Ambiente Editor de Texto x IDE Usar apenas editor de texto Exemplo: TextPad (http://www.textpad.com/) Compilar: Ferramentas -> Compilar Java Executar: Ferramentas -> Exec. Aplicat. Java Não usar ambientes de desenvolvimento Eclipse, JBuilder, NetBeans, etc. Primeirão em UML Projetando o Primeirão (UML) Por onde começar? Identificar os Objetos Dado Jogo Jogador Identificar Métodos e Atributos Dado numeroDeLados jogarDado() Jogo objetivo sorteiarIniciante() mostrarSituacao() iniciar() mostrarVencedor() Jogador nome pontos aumentarPontos() jaGanhou() Qual é a visibilidade? Dado - numeroDeLados + jogarDado() Jogo # objetivo + sorteiarIniciante() + mostrarSituacao() + iniciar() + mostrarVencedor() Jogador + nome # pontos + aumentarPontos() + jaGanhou() Relacionamentos entre Classes Dado - numeroDeLados + jogarDado() Jogo # objetivo + sorteiarIniciante() + mostrarSituacao() + iniciar() + mostrarVencedor() Jogador + nome # pontos + aumentarPontos() + jaGanhou() Definir Multiplicidade Dado 1..1 Jogo 1..1 - numeroDeLados + jogarDado() # objetivo 2..* + sorteiarIniciante() + mostrarSituacao() + iniciar() + mostrarVencedor() Jogador 0..1 + nome # pontos + aumentarPontos() + jaGanhou() Alguma dependência? Dado 1..1 Jogo 1..1 - numeroDeLados + jogarDado() # objetivo 2..* + sorteiarIniciante() + mostrarSituacao() + iniciar() + mostrarVencedor() Jogador 0..1 + nome # pontos + aumentarPontos() + jaGanhou() Uma Possível Solução UML Dado 1..1 Jogo 1..1 - numeroDeLados + jogarDado() O método jaGanhou precisa saber o objetivo do jogo # objetivo 2..* + sorteiarIniciante() + mostrarSituacao() + iniciar() + mostrarVencedor() Jogador 0..1 + nome # pontos + aumentarPontos() + jaGanhou() Referências DEITEL, H. M.; DEITEL P. J. Java: Como Programar, 6a. Edição. Pearson, 2005. BOOCH, G., RUMBAUGH, J., JACOBSON, I. UML, Guia do Usuário. Rio de Janeiro: Campus, 2000.