Вы находитесь на странице: 1из 4

1

UniversidadeFederalFluminense
InstitutodeComputao
DepartamentodeCinciadaComputao
ProgramaodeComputadoresII
Professor:LeandroAugustoFrataFernandes

3ListadeExerccios
OrientaoaObjeto

1. Identifique as classes, atributos e mtodos necessrios para modelar e


implementar:
a) Uma conta corrente que possui um nmero, um saldo, um status que informa se
ela especial ou no, um limite e um conjunto de movimentaes.
b) Uma movimentao que possui uma descrio, um valor e uma informao se
ela uma movimentao de crdito ou dbito.
c) Um banco que armazene um conjunto de contas e fornea mtodos que
permitam que sejam feitos criaes de conta, excluso de contas, saques (uma
conta corrente s pode fazer saques desde que o valor no exceda o limite de
saquelimite + saldo negativo), depsitos, emisso de saldo e extrato e
transferncia entre contas.
Uma vez feita a modelagem, implemente em Java.
2. Escreva uma classe que represente um pas. Um pas tem como atributos o seu
nome, o nome da capital, sua dimenso em Km
2
e uma lista de pases com os quais
ele faz fronteira. Represente a classe e fornea os seguintes construtores e mtodo:
a) Construtor que inicialize o nome, capital e a dimenso do pas;
b) Mtodos de acesso (obter/get) para as propriedades indicadas no item (a);
c) Um mtodo que permita verificar se dois pases so iguais. Dois pases so
iguais se tiverem o mesmo nome e a mesma capital. A assinatura deste mtodo
deve ser:
public boolean equals(final Pais outro);
d) Um mtodo que define quais outros pases fazem fronteira (note que um pas
no pode fazer fronteira com ele mesmo);
e) Um mtodo que retorne a lista de pases que fazem fronteira;
f) Um mtodo que receba um outro pas como parmetro e retorne uma lista de
vizinhos comuns aos dois pases.
2

3. De forma incremental, traduza o seguinte conjunto de classes em um programa


Java. Importante: No so permitidas chamadas a System.in, System.out ou similares
de dentro das classes criadas.
a) Classe: Porta
Atributos: aberta, cor, dimensaoX, dimensaoY, dimensaoZ
Mtodos: void abre(), void fecha(), void pinta(String s), boolean estaAberta()
Para testar, crie uma porta, abra e feche a mesma, pintea de diversas cores,
altere suas dimenses e use o mtodo estaAberta para verificar se ela est
aberta.
b) Classe: Casa
Atributos: cor, porta1, porta2, porta3
Mtodo: void pinta(String s), int quantasPortasEstaoAbertas(), int
totalDePortas()
Para testar, crie uma casa e pintea. Crie trs portas e coloqueas na casa; abra e
feche as mesmas como desejar. Utilize o mtodo quantasPortasEstaoAbertas
para imprimir o nmero de portas abertas.
c) Classe: Edificio
Atributos: cor, totalDePortas, totalDeAndares, portas[]
Mtodos: void pinta(String s), int quantasPortasEstaoAbertas(), void
adicionaPorta(Porta p), int totalDePortas(), void adicionarAndar(), int
totalDeAndares()
Para testar, crie um edifcio, pinteo. Crie seis portas e coloqueas no edifcio
atravs do mtodo adicionaPorta, abra e fecheas como desejar. Utilize o mtodo
quantasPortasEstaoAbertas para imprimir o nmero de portas abertas e o
mtodo totalDePortas para imprimir o total de portas em seu edifcio. Cria
alguns andares utilizado o mtodo adicionarAndar e retorne o nmero total de
andares utilizando o mtodo totalDeAndares.
d) As classes Casa e edifcio ficaram muito parecidas. Crie a classe Imovel e
coloque nela tudo o Casa e Edificio tem em comum. Faa Imovel superclasse de
Casa e Edificio. Note que alguns mtodos em comum no podero ser
implementados por Imovel (e.g., quantasPortasEstaoAbertas e totalDePortas).
Logo, essesdevero ser declarados como mtodos abstratos.
3

4. A hierarquia de classificao cientfica dos seres vivos segue a taxonomia de


Lineu. Abaixo apresentado um sumrio parcial do mais geral (reino) para o mais
especfico (Espcie) na classificao. Neste sumrio, Imprio, Domnio e
Sub/Superdivises so omitidos por simplicidade:
Reino
Filo (animais) / Diviso (plantas)
Classe
Ordem
Famlia
Gnero
Espcie
Com base no sumrio acima, a classificao do homem, co e mosca dada por:
Homem Co Mosca
Reino Animalia Animalia Animalia
Filo Chordata Chordata Arthropoda
Classe Mammalia Mammalia Insecta
Ordem Primata Carnvora Dptera
Famlia Hominidae Canidae Muscidae
Gnero Homo Canis Musca
Espcie Homosapiens Canisfamiliaris Muscadomestica
Fica evidente a partir deste exemplo que existe uma organizao hierrquica nas
classificaes para o homem, co e mosca. Esta hierarquia pode ser expresso por
uma rvore:

Animalia
Chordata Arthropoda
Mammalia Insecta
Primata Carnvora Dptera
Hominidae Canidae Muscidae
Homo Canis Musca
Homosapiens Canisfamiliaris Muscadomestica
4

Neste exerccio:
a) Represente por meio de classes Java a hierarquia de classificao que envolve
homem, co e mosca na taxonomia de Lineu;
b) Em sua modelagem verifique se faz sentido todas as classes serem concretas ou
se preciso definir alguma(s) delas como abstrata(s)
c) Implemente o mtodo String obterDescricao() em Animalia e sobreescreva este
mtodo em toda subclasse, de modo que quando invocado retornar toda a
taxonomia de uma dada instncia, por exemplo, para uma instncia de Homo
sapiens seria:
Reino Aimalia
Filo Chordata
Classe Mammalia
Ordem Primata
Famlia Hominidae
Gnero Homo
Espcie Homo sapiens

Вам также может понравиться