Criação e remoção de objetos, arrays

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


Criação e remoção de objetos

Como objetos são criados e removidos?

Programas

O que são programas em Java?

Arrays

Como arrays são definidos e manipulados em Java?

A referência this

Como indicar que um objeto manda uma mensagem para ele mesmo?


Leitura

  1. Definição completa da classe Banco.
  2. Seções 1.6 a 1.9, 2.4 a 2.13, 5.6 a 5.12, e 8.1 a 8.4 da Referência 1.
  3. Objects, Classes, and Interfaces da Referência 3, exceto as seções "Subclasses, Superclasses, and Inheritance" e "Creating and Using Interfaces". (Opcional)
  4. Capítulo 5 da Referência 5. (Opcional)

Exercícios

  1. Refine a implementação da classe Banco incluindo detalhes para que a mesma se adeque mais a realidade. Por exemplo, não deveria ser possível cadastrar duas contas com o mesmo número. (Opcional)
  2. Defina uma classe ConjuntoDeContas com operações para inserir uma conta em um conjunto, verificar se uma conta esta em um conjunto, e devolver do conjunto uma conta com um determinado número. Implemente conjuntos usando arrays como feito na definição da classe Banco. (Opcional)
  3. 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!
  4. 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

Lendo o material apresentado até aqui, os alunos já devem ser capazes de programar em Java usando os recursos básicos de orientação a objetos: classes, objetos e mensagens. De uma forma geral, isto corresponde aos recursos disponíveis para programação em linguagens imperativas.

No decorrer do curso serão apresentados mais recursos de orientação a objetos que podem facilitar ainda mais o desenvolvimento de software.

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


Paulo Borba (phmb@di.ufpe.br)