Você está na página 1de 4

LISTA L4 - PC-I

PROF: ALEXANDRE GARCIA - DOMINGOS

1. Encapsulamento, Herana, Polimorfismo e Abstrao

Estando no main, e instanciando um objeto x qualquer de uma classe y arbitrria, e seja um mtodo privado z da mesma classe y, se eu zer x.z(). Conseguirei executar? Justique sucintamente sua resposta.
Exerccio 1.1. Exerccio 1.2.

Verique se as classes abaixo compilam sem erros, se houver aponte uma soluo para consertar os mesmos.

(1)
1

LISTA L4 - PC-I

PROF: ALEXANDRE GARCIA - DOMINGOS

(2)

Crie uma classe abstrata chamada CartaoWeb. Essa classe representa todos os tipos de cartes web e conter apenas um atributo: destinatrio (String). Nessa classe voc dever tambm declarar o mtodo "public abstract void showMessage()". Crie classes lhas da classe CartaoWeb: DiaDosNamorados, Natal, Aniversario. Cada uma dessas classes, deve conter um mtodo construtor que receba o nome do destinatrio do carto. Cada classe tambm deve implementar o mtodo showMessage(), mostrando uma mensagem ao usurio com seu
Exerccio 1.3.

LISTA L4 - PC-I

PROF: ALEXANDRE GARCIA - DOMINGOS

nome e que seja especca para a data de comemorativa do carto. Por exemplo, essa poderia ser uma mensagem de um carto de dia dos namorados; No mtodo main da classe teste, crie um array de CartaoWeb. Insira de forma alternada, instncias dos 3 tipos de cartes nesta array. Aps, use um lao for para exibir as mensagens deste carto chamando o mtodo showMessage().
Exerccio 1.4.

Faa um diagrama de classes que possa a seguinte estrutura: A classe batalha dever possuir o mtodo correr() e as subclasses Heri e Monstro. A classe heri possuir as subclasses Guerreiro(atacar(), defender()) e Mago(magia()). Os Guerreiros podem ser Ninjas(shuriken()), Samurais ou Cavaleiros. Os Magos podem ser Negros ou Brancos. J os monstros podero ser Kraken(congelar()), Drago(cuspirFogo()) e Goblin (atacarComArmas()). Sabe-se tambm que os magos negros e drages podem voar, e que ninjas e krakens podem nadar.
Exerccio 1.5.

Decida se as asserivas abaixo so verdadeiras ou falsas:

(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)

Posso ter construtores em classes abstratas; Uma classe abstrata dever possuir apenas mtodos abstratos; O modicador protected previne uma subclasse de acessar mtodos(atributos); Uma interface pode ser implementada apenas uma vez; Uma interface pode ser denida como colees de assinaturas de mtodos e constantes; Uma interface pode possur atributos(no-constantes); Herana mltipla no permitida no JAVA; Uma classe abstrata pode possuir um construtor privado; Polimorsmo paramtrico permite modicar referncia de atributos via parmetros(<?>); Object subclasse de toda classe; A linha: "Cachorro o = new Object();"est correta; A linha: "Object q = (String) p"est correta; Implemente as classes a seguir:

Exerccio 1.6.

Faa a classe Animal que possua os atributos privados nome,

velocidade, peso, faa tambm o mtodo construtor e todos os seus gets(sem sets).
3

LISTA L4 - PC-I

PROF: ALEXANDRE GARCIA - DOMINGOS

assustar(Presa p); Presa com os mtodos correr(), chance() e setVelocidade(); Implemente as classes concretas Gato, Rato, Raposa e Coelho. O mtodo caar dever simular a caa do animal(predador comeu a presa) aumentando o peso e diminuindo em 1 a velocidade em 1, o ato de comer s efetuado caso a velocidade do predador seja maior que o da presa mais um nmero aleatrio oriundo do mtodo chance(). Sabese que gatos no caam coelhos, e que Raposas qdo comem ratos no ganham peso, nem perdem velocidade. Se a presa for comida coloque a referncia p como null(objeto morreu). o mtodo assustar apenas faz a presa correr aumentando em 1 sua velocidade. O mtodo correr() faz aumentar a velocidade da presa, faa tambm um nmero aleatrio entre 0 e 1, caso este for menor que 0.3 a presa cansa e sua velocidade deve ser reduzida em 70%. O mtodo chance() fornece um inteiro aleatrio entre 0 e 3.
Exerccio 1.7.

Faa as interfaces: Predador com os mtodos caar(Presa p) e

Implemente as classes a seguir: Investimento: String nome, double valor; mtodos: gets, sets, construtor e double rendimento(); Poupana: herda de Investimento, aqui o mtodo rendimento( deve retornar 0.7% Interface Taxable: getImposto(), getValor(), setValor(); RendaFixa: sabe-se que rendimento() retorna 1%, e seu imposto de 10%(getImposto() retorna 0.1); Fundo: sabe-se que o rendimento() retorna um aleatrio entre 0 e 1(Math.random()) e seu imposto de 15%. Sistema: possui os mtodos calcImposto(Taxable t) e calcRendimento(Investimento i), voc deve calcular o imposto e o rendimento em cima do valor respectivamente.

Você também pode gostar