SóProvas


ID
610066
Banca
CONSULPLAN
Órgão
Chesf
Ano
2007
Provas
Disciplina
Programação
Assuntos

A partir das afirmativas abaixo relativas às características da linguagem Java, pode-se afirmar que:

I. É possível utilizar vários blocos catch para capturar exceções vindas de um único bloco try.

II. Uma classe pode implementar mais de uma interface.

III. Todas as classes em Java herdam implicitamente a classe Object.

IV. É possível sobrecarregar um operador da linguagem como, por exemplo, o operador '+', assim como pode ser feito na linguagem C++.

Está(ão) correta(s) apenas a(s) afirmativa(s):

Alternativas
Comentários
  • I. CORRETO.

    II. CORRETO.

    III. CORRETO.

    IV. ERRADO. O único operador que é sobrecarregado no Java é o + para a concatenação de Strings. A sobrecarga de operadores não é permitida na linguagem.
  • (I) Correto - Sempre que um método de alguma classe é passível de causar algum erro, então, podemos usar o método de tentativa - o try.
    Tudo que estiver dentro do bloco try será executado até que alguma exceção seja lançada, ou seja, até que algo dê errado.
    Quando uma exceção é lançada, ela sempre deve ser capturada. O trabalho de captura da exceção é executado pelo bloco catch.
    Um bloco try pode possuir vários blocos de catch, dependendo do número de exceções que podem ser lançadas por uma classe ou método.
     
    (II)Correto - A vantagem principal das interfaces é que não há limites de quantas interfaces uma classe pode implementar. O que ajuda no caso de heranças múltiplas que não é possível ser feito em Java, pois uma classe apenas pode herdar as características de uma outra classe.

     
    (III)Correto - A linguagem Java provê algumas classes básicas para formar uma base sólida para todas as demais classes, inclusive aquelas criadas pelo programador. Dentre essas classes, seguramente as mais importantes são as classes Object, Class e String.
    A classe Object é uma classe que serve de superclasse para todas as classes existentes em Java. Portanto toda classe é subclasse de Object, e com isso herda alguns métodos automaticamente. Isso significa que ao criar uma classe, se não for especificada nenhuma superclasse após a palavra extends, então a classe Object será assumida automaticamente como superclasse.
     
     
    (IV)Errado -  Sobrecarga de operador seria a capacidade de se alterar a forma como um operador opera seus operandos. Isso pode ser feito em C++ por exemplo.
    Em Java não existe esse recurso. Você não pode mudar o comportamento dos operadores de Java. Se for necessário, a sua classe deve então prover algum método que faça tal tarefa.

     
  • Sera que algum dos colegas poderia esclarecer porque o conceito da afirmativa II nao se confunde com o de heranca multipla? Considerei falsa acreditando que o examinador estava propondo que 'e possivel implementar heranca multipla em java e marquei a letra B. desde ja agradeco por possiveis esclarecimentos.
  • Vou tentar esclarecer sua dúvida Leandro Martins Aguiar, em Java não temos herança múltipla, o item da questão deixa bem claro que se trata de interfaces (implements) e não herança (extends).
    O item da questão que gerou a dúvida: II. Uma classe pode implementar mais de uma interface.
    Como já citado por alguns colegas acima, numa classe Java podemos implementar várias interfaces, já na herança temos apenas a simples, uma classe só pode estender uma classe. Espero que tenha compreendido a explicação.
  • Apenas atualizando, interfaces antigamente não possuiam a implementação de métodos, apenas sua definição ou contrato. Como em Java só apesar de ser possível herdar/implementar múltiplas interfaces, mas herdar apenas de uma classe, logo não era possivel a herança múltipla.

     

    Agora, as versões mais recentes do Java permitem implementar os métodos na interface. Logo com isso é sim possível fazer herança múltipla em Java.