SóProvas


ID
334786
Banca
FCC
Órgão
TRT - 14ª Região (RO e AC)
Ano
2011
Provas
Disciplina
Programação
Assuntos

Em Java,

Alternativas
Comentários
  • Opção E
    Quando o método a ser invocado é definido durante a compilação do programa, o mecanismo de ligação prematura (early binding) é utilizado.

    Para a utilização de polimorfismo, a linguagem de programação orientada a objetos deve suportar o conceito de ligação tardia (late binding), onde a definição do método que será efetivamente invocado só ocorre durante a execução do programa. O mecanismo de ligação tardia também é conhecido pelos termosdynamic binding ou run-time binding.

    Em Java, todas as determinações de métodos a executar ocorrem através de ligação tardia exceto em dois casos:

    1. métodos declarados como final não podem ser redefinidos e portanto não são passíveis de invocação polimórfica da parte de seus descendentes; e
    2. métodos declarados como private são implicitamente finais.
    fonte:http://www.dca.fee.unicamp.br/cursos/PooJava/polimorf/latebind.html

  • A letra C está errada pois não é no momento da criação (instanciação) e sim no momento da definição da classe.
    Uma sutil diferença.
  •     O que está errado em:
        
        a) é possível criar e manipular objetos, mas não removê-los, pois a remoção é manipulada automaticamente pelo sistema.
        
        A única maneira que conheço são colocar uma referência como null ( meuObjeto=null;).
        Isto apenas torna o objeto qualificado para remoção, não o remove, que faz isso é o garbage colector. Fazer isto não garante que o objeto será removido.
        E chamar explicitamente o garbage colector não garante que ele será executado e muito menos que o objeto será removido.

       E o que está errado em:

        d) construtores da superclasse podem ser explicita- mente invocados usando a palavra-chave super
       
  • Tenho as mesmas dúvidas do Bruno.
  • Estou achando que essa questao pediu a incorrera.
  • [ERRADO] a) é possível criar e manipular objetos, mas não removê-los, pois a remoção é manipulada automaticamente pelo sistema. <-- era para ser "coletor de lixo".

    [ERRADO] b) classes são definidas através do uso da palavra-chave class, seguido do nome da classe, que, entre outras restrições, não pode ser iniciado por um número <-- era para ser "que precede o".

    [ERRADO] c) quando uma classe é criada e não há nenhuma referência à sua superclasse, implicitamente a classe criada é derivada diretamente da classe Object. <-- era para ser "definida", pois é objeto é que é criado.

    [CORRETO - gabarito errado!] d) construtores da superclasse podem ser explicitamente invocados usando a palavra-chave super. <-- Ver http://www.dca.fee.unicamp.br/cursos/PooJava/heranca/objderiv.html de onde foi tirada a frase!

    [ERRADO] e) todas as determinações de métodos a executar ocorrem através de ligação tardia exceto em dois casos <-- Ver http://www.dca.fee.unicamp.br/cursos/PooJava/polimorf/latebind.html de onde foi tirada a frase, mas incompleta!
  • Concordo com o amigo a cima! 

    Marquei letra D, pensando que era correta! 
    :D
  • A questão deveria estar pedindo o item INCORRETO! A única alternativa incorreta é a que o gabarito marcou como resposta.

    ALTERNATIVA E) todas as determinações de métodos a executar ocorrem através de ligação tardia. (ERRADA)

    Está errado pois as determinações de métodos podem ocorrer através de ligação tardia ou ligação estática.
  • TBM acredito que a questão está com o enunciado incompleto, não faz sentido...
  • Acredito que o enunciado está incompleto, a questão deve estar pedindo a assertiva incorreta, que seria a "e".

  • A letra C esta igual a esse material, esta errada mesmo ? 

    http://www.dca.fee.unicamp.br/courses/PooJava/heranca/index.html

  • Questão bizarra!

  • Nossa como pode?

  • Segundo o arquivo PDF da prova que consta aqui no QC mesmo, a questao eh essa, nao foi erro de transcricao...

  • a) [correto] você pode remover a referência a um objeto atribuindo `null` a ele, no entanto sua alocação de memória só será liberada pelo garbage collector;

    b) [correto] os identificadores para criação de classe devem iniciar com 'letras Java' que são quase qualquer caractere unicode menos dígitos 0 a 9, não devem ser palavras-chave (`protected`, `void`, `super`, ...), ou os identificadores de valor `null`, `true` e `false`;

    c) [correto] o pacote `java.lang` implementa a classe `Object` que define o comportamento comum de todas as classes;

    d) [correto] a palavra-chave `super` é referência padrão à superclasse, e pode ser utilizada para invocar seus construtores e métodos;

    e) [errado] todas os métodos são compilados em 'late binding', exceto métodos com modificador `final` e `private` que precisam utilizar 'early binding' para inclusão de referência em tabela virtual, já que o compilador precisa saber se o identificador já foi utilizado ou não e em qual escopo.

    Assim vejo que o enunciado está incompleto, já que deve pedir a questão incorreta.