Baixe o app para aproveitar ainda mais
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();
Compartilhar