Programação com Objectos/Teste de 2012/11/19: Difference between revisions
From Wiki**3
< Programação com Objectos
| No edit summary | |||
| Line 9: | Line 9: | ||
| '''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.   | '''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?   | '''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?   | ||
Revision as of 09:23, 18 November 2013
Parte 1
1.1. (3.0 val.) Empresa de Mobiliário
1.2. (1.0 val.) 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.
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?
Parte 2 (resposta múltipla)
2.1. Considere o diagrama UML da figura 1 (à direita). Qual das seguintes afirmações está correcta?
- a implementação de doThis tem de estar necessariamente em C
- doThis não está definido para B
- doIt pode ser directamente invocado através de referências para I
- I fornece a implementação para métodos declarados por A
- nenhuma das anteriores está correcta
 
2.2. Em Java, qual das seguintes frases está correcta?
- Uma classe pode estender uma única classe
- Uma classe pode estender várias classes
- Uma classe só pode implementar uma única interface
- Uma classe não pode simultaneamente estender uma classe e implementar uma interface
- Uma classe não pode simultaneamente estender uma classe e implementar mais do que uma interface
 
2.3. Em Java, um método declarado protected...
- só pode ser acedido dentro da própria classe ou por classes derivadas
- não pode ser redefinido
- não pode chamar outros métodos que também não sejam protected
- pode ser acedido por classes da mesma package
- só pode ser usado por construtores
 
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>();
- List<Integer> myList = new List<Integer>();
- List<Object> myList = new ArrayList<Integer>();
- ArrayList<Integer> myList = new List<Integer>();
- Todas estão correctas
 
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>
- sempre done finally
- sempre finally
- sempre done
- ou finally ou done finally
- ou done ou finally ou done finally
 
