Buscar

Lista-Escrita

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal do Ceará 
Campus de Quixadá 
Curso de Engenharia de Software 
 
Disciplina Programação Orientada a Objetos – ES006 Semestre 2011/2 
Professor Lincoln Souza Rocha 
Lista de Exercício 
 
1) A Programação Orientação a Objetos (POO) é um paradigma de programação largamente 
utilizado nos dias de hoje. Na POO a unidade de modularização é a classe. Sobre a POO 
responda o que se pede: 
a. Descreva o que você entende por classe deixando claro qual é a diferença entre classe e 
objeto. 
b. Na OO os objetos devem colaborar entre si para realizar algum processamento útil no 
sistema. Essa colaboração é feita através da troca de mensagens entre os objetos 
participantes da colaboração. Descreva, dando exemplo, como essa troca de mensagens 
entre objetos ocorre na linguagem Java. 
c. Uma classe é composta por: atributos (campos ou propriedades), construtores e métodos 
(operações). Explique cada um desses conceitos. Faça uma relação entre atributos, 
métodos e o estado de um objeto. 
01 public abstract class ContaAbstrata { 
02 
03 protected String numero; 
04 protected double saldo; 
05 
06 public ContaAbstrata(String numero) { 
07 this.numero = numero; 
08 saldo = 0; 
09 } 
10 
11 public void creditar(double valor) { 
12 saldo = saldo + valor; 
13 } 
14 
15 public abstract void debitar(double valor); 
16 
17 public String obterNumero() { 
18 return numero; 
19 } 
20 
21 public double obterSaldo() { 
22 return saldo; 
23 } 
24 } 
 
2) Com base no trecho de código acima (classe ContaAbstrata) responda o que se pede: 
a) Informe: i) o nome da classe; ii) o nome, o tipo e a visibilidade dos campos; iii) o nome, a 
visibilidade, os parâmetros e o tipo de retorno dos métodos; iv) todas as variáveis locais. 
b) Essa classe possui construtor? Se sim, qual é a sua assinatura dele? 
c) Essa classe é abstrata? Justifique sua resposta. 
d) Objetos oriundos dessa classe podem sofrer alterações no seu estado interno através de 
chamadas a qual(is) método(s)? 
3) Utilizando os conceitos de herança e polimorfismo responda e de acordo com as figuras 1, 2 e 3 
o que se pede: 
 
Figura 1 
 
Figura 2 
 
Figura 3 
a. Os trechos de código abaixo estão corretos? Justifique a sua resposta. 
Trecho de Código 01 
01 A’ a = new A(); 
02 a.fazAlgo(); 
 
 
Trecho de Código 02 
01 B b = new B(); 
02 b.fazAlgo(); 
 
 
Trecho de Código 03 
01 C c = new C’’(); 
02 c.fazAlgo(); 
 
 
b. Observando o corpo do método fazAlgo() das classes C, C’ e C’’, o trecho de 
código 04 está correto? Justifique sua resposta. Descreva a seqüência de impressões que 
serão feitas após a execução do trecho de código 04. Qual é o tipo estático da variável c 
do trecho de código 04. E quais são os tipos dinâmicos? 
Classe C 
public class C { 
 public void fazAlgo() { 
 System.out.println("Classe C"); 
 } 
} 
 
Classe C’ 
public class C’ { 
 public void fazAlgo() { 
 System.out.println("Classe C’"); 
 } 
} 
 
Classe C’’ 
public class C’’ { 
 public void fazAlgo() { 
 System.out.println("Classe C’’"); 
 } 
} 
 
Trecho de Código 04 
01 C c = new C’(); 
02 c.fazAlgo(); 
03 c = new C’’(); 
04 c.fazAlgo(); 
05 c = new C(); 
06 c.fazAlgo();

Outros materiais