Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Gabarito comentado 
 
1) Considerando a hierarquia abaixo: 
 
 
 
 
 
 
 Arquivo 
 - t:int 
- loc:String 
- d:Data 
 
 +Arquivo (x:int) 
+mA( ):int 
+mB( ):void 
 
 
 
 
 
 
ArquivoBinario ArquivoTexto 
 -x :int 
+ArquivoBinario (a:int ) 
+mB( ):void 
+mC( ):char 
 +ArquivoTexto (a:int, b:int ) 
+mA( ):int 
+mB( ):void 
+mC( ):void 
 
 
 
a) Quantos atributos têm os objetos da classe ArquivoBinario? e da 
classe ArquivoTexto? 
 
 
 
 
 
 
 
b) O método mA pode ser chamado para os objetos da classe 
ArquivoBinario? 
 
 
 
c) O método mB é o mesmo para as três classes? 
 
 
 
 
Os objetos da classe ArquivoBinario tem 3 atributos (todos herdados) 
Os objetos da classe ArquivoTexto tem 4 atributos (3 herdados e 1 exclusivo) 
 
Sim, pois é um método herdado. 
Não. Há 3 métodos mB: 
- o da superclasse 
- o da classe ArquivoBinario (sobrescrita) 
- o da classe ArquivoTexto (sobrescrita) 
 
d) O método mC da classe ArquivoTexto é uma sobrescrita? é uma 
sobrecarga? Justifique sua resposta. 
 
 
 
 
 
 
 
 
 
 
e) Considere a sequência de instruções abaixo e explique o que faz 
cada instrução ou se está errada: 
 
 
 
 
(i). Arquivo a, aT, aB , aa; 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
(ii). aT = new ArquivoTexto(7, 12); 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Não é sobrescrita pois não há um método com a mesma assinatura, na 
superclasse. 
Não é sobrecarga pois não há outro método mC com assinatura diferente na 
mesma classe, nem na super. 
Memória 
 a aT aB aa 
 /// __ __ 
 = = __ 
 
Declara 4 variáveis objeto do tipo Arquivo. Estas variáveis 
podem referenciar objetos do tipo Arquivo e objetos das 
subclasses de Arquivo. Ao serem declaradas não apontam 
para nenhum objeto. 
 
Memória 
 a aT aB aa 
 /// __ 
 __ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Instancia um objeto do tipo ArquivoTexto. Atribui 
a referência deste objeto à variável aT. Observe, 
na memória, que a variável aT passa a apontar 
para este objeto. 
 
 ArquivoTexto 
 
t 
 
loc 
 
d 
 
x 
 
 
 
 
 
 
 
7 
null 
null 
12 
 
(iii). a = new Arquivo (3); 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
(iv). aB = new ArquivoBinario( 2); 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Instancia um objeto do tipo ArquivoBinario. Atribui a 
referência deste objeto à variável aB. Observe, na 
memória, que a variável aB passa a apontar para este 
objeto 
 
Instancia um objeto do tipo Arquivo. Atribui a referência 
deste objeto à variável a. Observe, na memória, que a 
variável a passa a apontar para este objeto 
 
Memória 
 a aT aB aa 
 __ 
 __ 
 
Arquivo 
 
t 
loc 
 
d 
 ArquivoTexto 
 
t 
 
loc 
 
d 
 
x 
 
3 
null 
null 
7 
null 
null 
12 
 
Memória 
 a aT aB aa /// 
 
 
 
 
Arquivo 
 
t 
 
loc 
 
d 
 
ArquivoTexto 
 
t 
 
loc 
 
d 
 
x 
 
 
ArquivoBinario 
 
t 
loc 
 
d 
 
3 
null 
null 
7 
null 
null 
12 
2 
null 
null 
 
 
(v). aT.mA( ); 
 
 
 
(vi). a.mA( ); 
 
 
 
(vii). a.mC( ); 
 
 
(viii). aB.mC( ); 
 
 
 
 
 
 
 
(ix). aT.mB( ); 
 
 
 
 
(x). Arquivo aux; 
 
 
 
 
 
 
 
 
 
 
 
 
 
(xi). aux.mA( ); 
 
 
 
 
 
 
chama o método mA da classe ArquivoTexto 
chama o método mA da classe Arquivo 
Erro! não existe o método mC na classe Arquivo 
ArquivoTexto 
Erro! o método mC é exclusivo da classe ArquivoBinario e a 
variável é da superclasse. A chamada correta seria: 
( (ArquivoBinario) aB).mC( ) //downcasting 
chama o método mB da classe ArquivoTexto 
Declara uma variável objeto do tipo Arquivo 
Erro! a variável aux não referencia nenhum objeto 
Memória 
 aux 
 //// 
 
(xii). aux = aB; 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
(xiii). aa = aux; 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 a variável aux recebe a referência que está na variável aB e então 
passa a apontar para o mesmo objeto que aB está apontando. 
Memória 
 a aT aB aa /// 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 aux 
 
Arquivo 
 
t 
 
loc 
 
d 
 
ArquivoTexto 
 
t 
 
loc 
 
d 
 
x 
 
 
ArquivoBinario 
 
t 
loc 
 
d 
 
3 
null 
null 
7 
null 
null 
12 
2 
null 
null 
 
 
 O conteúdo da variável aux é atribuído para a 
variável aa. Então a variável aa também passa a 
apontar para o mesmo objeto que aux está 
apontando. 
Memória 
 a aT aB aa 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 aux 
 
 
Arquivo 
 
t 
 
loc 
 
d 
 
ArquivoTexto 
 
t 
 
loc 
 
d 
 
x 
 
 
ArquivoBinario 
 
t 
loc 
 
d 
 
3 
null 
null 
7 
null 
null 
12 
2 
null 
null 
 
 
 
 
(xiv). aa.mC( ); 
 
 
 
 
 
 
 
 
(xv). aB.mA( ); 
 
 
 
 
 
 
f) faça o diagrama UML de um possível objeto da classe ArquivoTexto, 
com valores fictícios: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
g) Escreva um possível construtor para a classe ArquivoTexto. 
 
 
 
 
 
 
 
 
 
 
 
 ArquivoTexto 
 
t 
 
loc 
 
d 
 
x 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Erro! o método mC é exclusivo da classe ArquivoBinario e a 
variável é da superclasse. A chamada correta seria: 
( (ArquivoBinario) aa).mC( ) //downcasting 
chama o método mA da classe Arquivo. Este método é herdado 
pela classe ArquivoBinario. 
 Data 
 
dia 
 
mes 
 
ano 
7 
“Documentos” 
 
12 
25 
11 
2012 
public ArquivoTexto (int a, int b) { 
 super (a);this.x = b; 
 } 
 
 
 
 
 
2) Indique se está certo ou errado cada um dos construtores da subclasse 
CachorroQuente e justifique sua resposta. 
 
 
 
public class Lanche { 
 double preco; 
 
 public Lanche (double umPreco) 
 { preco = umPreco; 
 } 
} 
 
 
 
 
 
 
public class CachorroQuente extends Lanche { 
 String tipo; 
 
 public CachorroQuente (double p, String tipo) //constructor 
1 
 { this.tipo = tipo; 
 super(p); 
 } 
 
 public CachorroQuente (double p) //constructor 2 
 { super(p); 
 tipo = “tradicional”; 
 } 
 
 
 public CachorroQuente (double p, String tipo)//constructor 3 
 { super(p); 
 this.tipo = tipo; 
 } 
 
 
 public CachorroQuente (double p, String tipo)//constructor 4 
 { super.Lanche(p); 
 this.tipo = tipo; 
 } 
} 
 
 
Errado. A chamada ao construtor da superclasse deve ser 
o primeiro comando do construtor da subclasse 
Correto 
Correto 
Errado. Sintaxe da chamada do construtor da 
superclasse incorreta.

Mais conteúdos dessa disciplina