Você está na página 1de 3

Lista 01 Rafael de Carvalho Oliveira

1. As vezes as coisas so mais difceis do que elas aparentam ser. Considere isto: em que tipo de relacionamento de herana esto Retngulo e Quadrado? Qual a classe me? Qual a classe filha? Quais so os argumentos? Discuta.
Depense do ponto de vista

2. Desenhe uma hierarquia de herana que represente as partes de um sistema de computador (processador, memria, unidade de disco, unidade de CD, impressora, scanner, teclado, mouse,etc).

MEMORIA

RAM

MEMORIA CACHE

SECUNDARIA

MEMORIA FISICA

MEMORIA VIRTUAL NIVEL 1 NIVEL2

HD

ROM/BIOS

DISCOS REMOVIVEIS

TECLAD

3. Suponha que temos quatro classes: Pessoa, Professor, Estudante,EstudantePosGraduacao. Professor e Estudante so subclasses de Pessoa. EstudantePosGraduacao uma subclasse de Estudante. a. Quais das seguintes atribuies so vlidas e por que? i. Pessoa p1 = new Estudante(x); Porque so variaveis polimorficas. ii. Pessoa p2 = new EstudantePosGraduacao(); iii. EstudantePosGraduacao pos1 = new Estudante(); iv. Professor t1 = new Pessoa(); v. Estudante e1 = new EstudantePosGraduacao();

b. Suponha que temos estas declaraes e atribuies: Pessoa p1 = new Pessoa(); Pessoa p2 = new Pessoa(); EstudantePosGraduacao pos1 = new EstudantePosGraduacao(); Professor t1 = new Professor(); Estudante e1 = new Estudante(); Com base nisso, qual das atribuies a seguir so vlidas, por que ou por que no? i. e1 = p1; ii. e1 = p2; iii. p1 = e1(x); iv. t1 = e1; v. e1 = pos1; vi. pos1 = e1;
Porque p1 uma variavel polimorfica do tipo Pessoa e e1 uma variavel do tipo Estudante, que classe filha de Pessoa.

4. Examine o cdigo abaixo. Voc tem quatro classes (O, X, T e M) e uma varivel de cada uma delas. O o; X x; T t; M m; Todas as atribuies a seguir so vlidas (suponha que todas compilem): m = t; m = x; o = t; Todas as atribuies a seguir so invlidas (causam erros de compilao) o = m; o = x; x = o; O que voc pode dizer sobre os relacionamentos (herana) dessas classes? Desenhe o relacionamento entre as classes (O, X, T e M).
A classe M seria a superclasse. A classe O uma subclasse de M assim como a classe X. A classe T subclasse da classe O.

5. Suponha que voc veja estas linhas de cdigo: Dispositivo dev = new Impressora(); dev.getNome(); Impressora uma subclasse de Dispositivo. Qual dessas classes deve ter uma definio do mtodo getNome para que esse cdigo compile?
A subclasse Impressora.

6. Na mesma situao que a do exerccio anterior, se as duas classes tiverem uma implementao de getNome, qual mtodo sera executado?
Primeiramente a busca feita na subclasse Impressora, caso no tenha o mtodo getName na subclasse , a busca passa a ser feita na superclasse Dispositivo.

7. Escreva algumas linhas de cdigo que resultem em uma situao em que uma varivel x tenha o tipo esttico T e o tipo dinmico D. Considere construtor no parametrizado. (Dica: Uma instanciao) T x = new D(); 8. Uma classe abstrata pode ter mtodos concretos (no-abstratos)?
Sim, as classes que herdam da classe abstrata podem usar seus metodos.

Uma classe concreta pode ter mtodos abstratos?


No, somente classes abstratas podem ter metodos abstratos.

possvel haver uma classe abstrata sem mtodos abstratos? Justifique suas respostas. Sim, ela pode conter ou no um metodo abstrato que tem a mesma definiao de assinatura de uma interface. 9. Examine o cdigo a seguir. Voc tem cinco tipos (classes ou interfaces) (U, G, B, Z e X) e uma varivel de cada um desses tipos. U u; G g; B b; Z z; X x; Todas as atribuies a seguir so vlidas (suponha que todas compilem) u = z; x = b; g = u; x = u; Todas as atribuies a seguir so invlidas (elas causam erros de compilador) u = b; x = g; b = u; z = u; g = x; O que voc pode dizer sobre os tipos e seus relacionamentos? Que relacionamentos existe