Vous êtes sur la page 1sur 11

2004 - SAEB) No paradigma da orientao 1.

(FCC, a objetos, CORRETO afirmar que: Polimorfismo o processo pelo qual um objeto envia dados a outro objeto ou solicita a este objeto para invocar um mtodo. Encapsulamento o recurso utilizado para separar aspectos internos e externos de um objeto, de modo a promover o princpio do ocultamento de informao. Interface a representao abstrata de uma tela para interao com o usurio final. Sobrecarga a capacidade de uma classe estender outra classe aproveitando-se de seus mtodos e atributos. Herana um princpio onde o comportamento de um objeto varia de acordo com a classe no qual o comportamento foi invocado, ou seja, duas ou mais classes podem reagir de forma diferente mesma mensagem.

[4 pts.]

2011) O paradigma de programao 2. (ENADE, orientado a objetos tem sido largamente utilizado no desenvolvimento de sistemas. Considerando o conceito de herana, avalie as afirmaes abaixo. 1. Herana uma propriedade que facilita a implementao de reuso. 2. Quando uma subclasse criada, essa herda todas as caractersticas da superclasse, no podendo possuir propriedades e mtodos prprios. 3. Herana mltipla uma propriedade na qual uma superclasse possui diversas subclasses. 4. Extenso uma das formas de se implementar herana. CORRETO apenas o que se afirma em:

[4 pts.]

1. e 4. 3. 1. 2 e 3. 2 e 4.

que faz com que uma classe seja considerada 3. O abstrata? A classe no pode ter definies de mtodos (implementao). A classe deve ter um construtor default (sem parmetros). A classe deve ter uma funo que retorna null. A classe deve ter pelo menos um mtodo sem implementao. A classe deve ser declarada como abstrata.

[4 pts.]

o cdigo Java abaixo: 4. Considere abstract class Empregado {


String nome; public abstract float calcSalario(); } class Gerente extends Empregado { public void contratar(String quem) { System.out.println(quem + " contratado por " + nome ); } public void demitir(String quem) { System.out.println(quem + " demitido por " + nome ); } } public class ConfereGerente { public static void main(String args[]) { Gerente eu = new Gerente(); eu.contratar("novato"); eu.demitir("ningum"); } }

[4 pts.]

O resultado da execuo do cdigo acima ser: novato contratado por nome // ningum

demitido por nome novato contratado por null // ningum demitido por null quem contratado por Empregado // quem demitido por Empregado Ocorrer erro de compilao. Ocorrer erro de execuo

o diagrama a seguir na notao UML. 5. Considere Qual cdigo melhor representa a estrutura do diagrama?

[4 pts.]

class TabelaMySQL extends Tabela, Conexao class TabelaMySQL extends Tabela implements Conexao class TabelaMySQL implements Tabela, Conexao class TabelaMySQL extends Conexao implements Tabela Erro, pois Java no prov herana mltipla

o cdigo abaixo: 6. Considere public class Instanciadora


{ private static int id = 0; private String tipoInstancia; public Instanciadora(String tipoRequerido) { id = id + 1; tipoInstancia = tipoRequerido; } public String toString() { return "Tipo: " + tipoRequerido + ", Id: " + id + "; "; } public static void main(String [] args) { ListaDeInstancias [] instancias = new

[4 pts.]

Instanciadora[2]; instancias[0] = new Instanciadora("Produto"); instancias[1] = new Instanciadora("Objeto"); for (int i = 0; i < 2; i++) System.out.print(instancias[i]); System.out.println(); } }

Assinale a sada do programa: Tipo: Produto, Id: 1; Tipo: Objeto, Id: 2; Tipo: Produto, Id: 2; Tipo: Objeto, Id: 2; Tipo: Produto, Id: 1; Tipo: Produto, Id: 2; Tipo: Objeto, Id: 2; Tipo: Objeto, Id: 2; Tipo: Produto, Id: 0; Tipo: Objeto, Id: 1;

de classes so inicializadas por 7. Instncias construtores. Assinale a assertiva correta sobre construtores de classes: Uma classe pode ter mais de um construtor, somente se eles possurem diferentes nmeros de argumentos. Uma classe pode ter mais de um construtor, mas apenas um deles pode ser do tipo void. Uma classe pode ter mais de um construtor, desde que eles possuam um nmero diferente de argumentos, ou os argumentos possuam tipos diferentes. Uma classe pode ter mais de um construtor, desde que todos possuam nomes diferentes. Uma classe pode ter mais de um construtor, desde que eles sejam pblicos e no estticos.

[4 pts.]

programador deseja escrever um programa 8. Um que calcule a seguinte sequencia de nmeros: 1 3 5 7 9 11 13 15 17 ... 999 A primeira tentativa feita foi implementar a funo impares() conforme o cdigo abaixo:
public class sequencia { int x = 1;

[4 pts.]

public static void main( String [] args ) while (x < 1000) { System.out.print(x + " "); impares(); } System.out.println(); } public static void impares() { x = x + 2; } }

A varivel inteira x, apesar de estar disponvel no escopo ainda no foi alocada no momento da chamada do mtodo. O loop while entrar em loop infinito. A varivel x usada na funo impares no est disponvel no escopo para uso naquele mtodo. O nome da classe deve iniciar com letra maiscula. Uma classe no pode ter todos os seus mtodos declarados como estticos.

o cdigo a seguir: 9. Considere public class MinhaClasse {


public static void main(String[] args) { String x, y, z; z = new String("ouro"); x = new String("prata"); y = x; x = new String("bronze"); z = y; System.out.println(x + ", " + y + ", " + z); } }

[4 pts.]

Assinale a alternativa que melhor representa o resultado da tentativa de compilao e execuo do programa apresentado: O programa ir produzir um erro de compilao. O programa ir imprimir ouro, prata, bronze quando executado.

O programa ir imprimir bronze, prata, prata quando executado. O programa ir imprimir bronze, bronze, bronze quando executado. O programa ir imprimir bronze, prata, ouro quando executado.

10. Considere as assertivas abaixo:


1. permitida a herana mltipla de interfaces. 2. Interfaces podem ser estendidas por qualquer nmero de interfaces. 3. public static int answer = 42; uma declarao possvel em uma interface. 4. public static int funcao(); uma declarao possvel em uma interface. 5. Uma classe pode implementar apenas uma interface. Assinale a assertiva correta: Apenas I, II e III esto corretas. Apenas I, III e IV esto corretas. Apenas II, IV e V esto corretas. Apenas III, IV e V esto corretas. Apenas I, II e V esto corretas.

[4 pts.]

11. Considere o cdigo a seguir:


public class Uso { int planeta; static int sol; public void foco() { int i; // (1) INSERIR COMANDO AQUI } }

[4 pts.]

Assinale a assertiva que NO explica o que acontecer com os comandos abaixo se inseridos na localizao (1) do cdigo acima? i = this.planeta; // no ir produzir erro nem aviso (warning) i = this.sol; // ir produzir um aviso (warning) sobre o uso de atributos estticos. this = new Uso(); // ir produzir erro de compilao sobre atribuio a um elemento que no varivel. this.i = 4; // ir produzir erro de compilao de campo no disponvel. this.sol = planeta; // ir produzir um erro de compilao sobre o uso de um atributo no disponvel.

12. Considere o cdigo Java a seguir:


class Shulambs { public static void main(...) { int k=0; try { int i = 5/k; } catch (ArithmeticException e) { System.out.println("1"); } catch (RuntimeException e) { System.out.println("2"); return; } catch (Exception e) { System.out.println("3"); } finally { System.out.println("4"); } System.out.println("5"); } }

[4 pts.]

ArithmeticException uma classe que estende a classe RuntimeException que, por sua vez,

estende a classe Exception. A sada do programa ser: 12345 14 1234 145 O programa ir dar erro de compilao: Exceo no tratada (Unhandled Exception)

13. Considere o cdigo Java a seguir:


public class Polimorfismo { public static void main(String args[]) { A ref1 = new C(); B ref2 = (B) ref1; System.out.println(ref2.g()); } } class A { private int f() { return 0; } public int g() { return 3; } } class B extends A { private int f() { return 1; } public int g() { return f(); } } class C extends B { public int f() { return 2; } }

[4 pts.]

Assinale a assertiva que melhor representa o resultado da tentativa de compilao e execuo do programa apresentado. Ir produzir um erro de compilao. Ir imprimir 0 quando executado. Ir imprimir 1 quando executado. Ir imprimir 2 quando executado.

Ir imprimir 3 quando executado.

14. Considere o cdigo Java a seguir:


public class ClasseA { public void metodoUm(int i) { } public void metodoDois(int i) { } public static void metodoTres(int i) { } public static void metodoQuatro(int i) { } } public class ClasseB extends ClasseA { public static void metodoUm(int i) { } public void metodoDois(int i) { } public void metodoTres(int i) { } public static void metodoQuatro(int i) { } }

[4 pts.]

Baseado na tentativa de compilao e execuo do cdigo apresentado, marque a assertiva INCORRETA: Ocorrer um Erro de compilao: metodoUm no pode ocultar o mtodo da ClasseA. Pode-se dizer que o metodoDois sobrepe (override) o mtodo da ClasseA. Ocorrer um Erro de compilao, pois o metodoTres no pode ocultar o mtodo da ClasseA. Pode-se dizer que o metodoQuatro sobrepe (override) o mtodo da ClasseA. Pode-se dizer que o metodoQuatro ocultar o mtodo da classe ClasseA, mas no poder sofrer polimorfismo.

15. Considere o cdigo Java a seguir:


abstract class TesteSuper { abstract void f();

[4 pts.]

final void g() { } //final void h() { } (1) protected static int i; private int j; } final class TesteFinal extends TesteSuper { public int m; //TesteFinal(int n) { m = n; } (2) void f() { } void h() { } //void k() { i++; } (3) //void l() { j++; } (4) public static void main(String[] args) { TesteSuper mc = new TesteFinal(); } }

//

//

// //

Baseado no cdigo apresentado, qual a linha pode ter seu comentrio removido sem introduzir erros na compilao? Linha 1. Linha 2. Linha 3. Linha 4 Todas produziro erro de compilao.

16. Considere o cdigo Java a seguir:


class A { String frase = "Isso no est funcionando."; public String processar(B b) { String tmp = b.fazAlgo(frase); return tmp; } } class B { ... public String fazAlgo(String s) { ... }

[4 pts.]

} class C { A [] listaA; B objB; public C() { objB = new B(); } public insere(A a) { ... } public remove(A a) { ... } }

Baseado no cdigo apresentado, assinale a assertiva INCORRETA: A relao mais provvel entre A e B de associao. A relao mais provvel entre C e B de composio. A cardinalidade da relao mais provvel entre A e C muitos para muitos. A relao mais provvel entre C e A de agregao. B aparentemente no possui nenhuma relao direcionada a ele.