A partir das afirmativas abaixo relativas às características...

Próximas questões
Com base no mesmo assunto
Q203353 Programação
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

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: A - I, II e III.

Vamos analisar cada uma das afirmativas para entender por que a alternativa A é a resposta correta:

I. Afirmativa I está correta. Em Java, é comum o uso de múltiplos blocos catch associados a um único bloco try. Isso permite que diferentes exceções sejam tratadas de formas específicas. Cada bloco catch pode capturar um tipo diferente de exceção, permitindo que o código responda de maneira apropriada para cada caso excepcional que possa surgir durante a execução.

II. Afirmativa II está correta. Uma das características de orientação a objetos em Java é a capacidade de uma classe implementar múltiplas interfaces. Isso proporciona grande flexibilidade, permitindo a uma classe ter várias "visões" ou conjuntos de métodos que podem ser utilizados por diferentes partes do código ou em diferentes contextos.

III. Afirmativa III está correta. Todas as classes em Java herdam de uma classe base chamada Object. Isso significa que qualquer classe que você criar terá métodos fundamentais como toString(), equals(), hashCode(), entre outros, que são herdados de Object.

IV. Afirmativa IV está incorreta. Diferentemente de linguagens como C++, Java não permite a sobrecarga de operadores. Em Java, o comportamento dos operadores é fixo e não pode ser alterado ou estendido, o que simplifica a linguagem, mas também limita a capacidade de personalização que algumas linguagens como C++ oferecem.

Portanto, as afirmativas I, II e III são corretas e estão de acordo com as características e capacidades da linguagem Java, o que justifica a alternativa A como a correta.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

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.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo