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:
- Existe na máquina uma base de usuários cadastrados e
suas respectivas senhas. Apenas usuários cadastrados
podem entrar no sistema.
- Cada usuário possui um diretório raiz
"virtual", do tipo /home/login.
- Uma vez iniciada a sessão, o usuário pode criar,
remover e listar os seus arquivos e diretórios, entre
outras operações.
Para desenvolver a aplicação, devemos passar pelos seguintes
passos:
- Veja e procure entender a assinatura
das classes principais e
auxiliares do sistema,
- Veja e procure entender a implementação
das classes principais e auxiliares em Java,
- Veja e procure endender a classe principal
(Sessao),
- Copie a implementação das classes e a classe principal
para a sua área (drive h),
- Abra o JDK,
- Compile as classes,
- Retire os erros que surgirem,
- Repita as etapas 6 e 7 até não haverem mais erros,
- Execute a classe principal (Sessao).
Leitura
- Capitulo 8 da referência1.
- Sessao com suporte a mais
comandos.
Exercícios
- Modifique a Sessao extendida
para que a mesma faça uma outra operação e/ou melhore
as que ja estão implementadas. (Opcional)
- 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)
- 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.