Programação com Objectos/Teste de 2012/11/19: Difference between revisions

From Wiki**3

< Programação com Objectos
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{TOCright}}
#REDIRECT [[ist:Programação com Objectos/Teste de 2012/11/19]]
 
== Parte 1  ==
 
'''1.1.''' (3.0 val.) [[Introdução à Modelação com UML/Empresa de Mobiliário|Empresa de Mobiliário]]
 
'''1.2.''' (1.0 val.) [[Polimorfismo, Interfaces, Classes Abstractas/Exercício 06: Tabuleiros e Peças|Tabuleiros e Peças]]
 
'''1.3.''' (1.5 val.) Diga em que consistem e como se expressam os conceitos de sobrecarregamento (overloading) e redefinição (overriding) de métodos nas linguagens de programação com objectos. Dê exemplos práticos, se possível, relacionados com o projecto.
 
* [[Polimorfismo, Interfaces, Classes Abstractas]]
 
'''1.4.''' (1.5 val.) Explique em consiste o mecanismo de abstracção presente em linguagens como o Java e o C++. Qual é a sua relação com o polimorfismo. Que consequências têm estes dois aspectos na produção de código?
 
* [[Polimorfismo, Interfaces, Classes Abstractas]]
 
== Parte 2 (resposta múltipla)  ==
[[Image:UML-teste-po-20121119.png|frame|right|Figura 1 (todos os métodos estão implementados)]] '''2.1.''' Considere o diagrama UML da figura 1 (à direita). Qual das seguintes afirmações está correcta?
 
:#<s>a implementação de '''doThis''' tem de estar necessariamente em '''C'''</s>
:#<s>'''doThis''' não está definido para '''B'''</s>
:#<s>'''doIt''' pode ser directamente invocado através de referências para '''I'''</s>
:#<s>'''I''' fornece a implementação para métodos declarados por '''A'''</s>
:#nenhuma das anteriores está correcta
 
'''2.2.''' Em Java, qual das seguintes frases está correcta?
 
:#Uma classe pode estender uma única classe
:#<s>Uma classe pode estender várias classes</s>
:#<s>Uma classe só pode implementar uma única interface</s>
:#<s>Uma classe não pode simultaneamente estender uma classe e implementar uma interface</s>
:#<s>Uma classe não pode simultaneamente estender uma classe e implementar mais do que uma interface</s>
 
'''2.3.''' Em Java, um método declarado '''protected'''...
 
:#<s>só pode ser acedido dentro da própria classe ou por classes derivadas</s>
:#<s>não pode ser redefinido</s>
:#<s>não pode chamar outros métodos que também não sejam '''protected'''</s>
:#pode ser acedido por classes da mesma package
:#<s>só pode ser usado por construtores</s>
 
'''2.4.''' Supondo que está a fazer os imports correctos, qual das seguintes instruções não gera nem avisos nem erros de compilação?
 
:#'''List<Integer> myList = new ArrayList<Integer>();'''
:#<s>'''List<Integer> myList = new List<Integer>();'''</s>
:#<s>'''List<Object>  myList = new ArrayList<Integer>();'''</s>
:#<s>'''ArrayList<Integer> myList = new List<Integer>();'''</s>
:#<s>Todas estão correctas</s>
 
'''2.5.''' Quais são as possíveis saídas do seguinte programa em Java:
 
<java5>
public static void main(String[] args) {
  try {       
    if (args.length == 0) throw new Exception();       
  }
  catch (Exception e) {
    System.out.print("done "); 
  }
  finally {
    System.out.println("finally ");
  }
}
</java5>
 
:#<s>sempre '''done finally '''</s>
:#<s>sempre '''finally '''</s>
:#<s>sempre '''done '''</s>
:#ou '''finally ''' ou '''done finally '''
:#<s>ou '''done ''' ou '''finally ''' ou '''done finally '''</s>
 
[[Category:PO]]
[[Category:Ensino]]

Latest revision as of 17:33, 7 November 2018