Implementando aplicações simples

Programação 3: Orientação a Objetos e Java


Simulando uma sessão de usuário

Os conceitos vistos em aulas anteriores (como classes, objetos, métodos e atributos) serão ilustrados nesta aula através do desenvolvimento de uma aplicação simples. É importante salientar que existem várias formas de se implementar o sistema proposto em Java. A forma que apresentaremos a seguir não é a mais adequada ou eficiente, porém é uma maneira de resolver o problema com os recursos de Java vistos até agora.

A aplicação consiste em simular o login de um usuário em uma máquina, com um sistema de arquivos "virtual", iniciando uma sessão na mesma. O programa deverá possuir as seguintes características:

Para desenvolver a aplicação, devemos passar pelos seguintes passos:

  1. Veja e procure entender a assinatura das classes principais e auxiliares do sistema,
  2. Veja e procure entender a implementação das classes principais e auxiliares em Java,
  3. Veja e procure endender a classe principal (Sessao),
  4. Copie a implementação das classes e a classe principal para a sua área (drive h),
  5. Abra o JDK,
  6. Compile as classes,
  7. Retire os erros que surgirem,
  8. Repita as etapas 6 e 7 até não haverem mais erros,
  9. Execute a classe principal (Sessao).

Leitura

  1. Capitulo 8 da referência1.
  2. Sessao com suporte a mais comandos.

Exercícios

  1. Modifique a Sessao extendida para que a mesma faça uma outra operação e/ou melhore as que ja estão implementadas. (Opcional)
  2. Defina uma classe BancoModular similar a Banco, mas que é definida usando-se a classe ConjuntoDeContas; isto é, BancoModular deve ter apenas um atributo essencial, contas, do tipo ConjuntoDeContas. Compare as duas implementações de bancos: Banco e BancoModular. Quais as vantagens e desvantagens de cada abordagem? Justifique. Note que se não tivermos cuidado podemos escrever programas orientados a objetos que não são modulares! (Opcional)
  3. Suponha que por questões de eficiência temos que modificar a maneira como contas são armazenadas no banco; ao invés de arrays temos que usar árvores binárias. Qual implementação de bancos seria mais facilmente modificada: Banco ou BancoModular? Escolha uma delas e faça as modificações necessárias. (Opcional)

Informações

Várias equipes precisam ser formadas. Vejam as equipes formadas até agora.

Lembrem-se que os exercícios devem ser feitos com o auxílio das ferramentas de suporte a Java, apresentadas na Aula 4, e disponibilizadas via rede.


Débora Aranha (dcsa@di.ufpe.br) e Sérgio Soares (scbs@di.ufpe.br)