Dos trechos de códigos abaixo, extraídos de um arquivo fonte...

Próximas questões
Com base no mesmo assunto
Q1307089 Programação
Dos trechos de códigos abaixo, extraídos de um arquivo fonte escrito para a versão 8 da linguagem Java, o único que compila corretamente é
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: Alternativa B

Vamos analisar a alternativa correta e entender por que ela está certa:

A Alternativa B apresenta a declaração de um método main em Java, que é o ponto de entrada de qualquer programa Java. Este método está corretamente definido como public e static, e aceita um array de Strings como argumento, o que pode ser notado pelo uso de elipses (três pontos), indicando que podem ser passados vários argumentos do tipo String. A declaração segue a assinatura padrão do método main que o Java espera:

public static void main (String ... args) {}

Os conhecimentos necessários para acertar essa questão incluem entender a sintaxe e os conceitos básicos da linguagem Java, como a declaração de métodos, instruções condicionais, a criação de objetos e enumerações.

Quanto às demais alternativas, elas contêm erros:

  • Alternativa A: O operador de cast está sendo aplicado de forma errada, tentando converter um boolean (resultado da expressão (b > c)) para String.
  • Alternativa C: A palavra-chave final não pode ser usada na declaração de um enum. Em Java, um enum é implicitamente final, e não precisa dessa especificação.
  • Alternativa D: A criação de um objeto Boolean está incorreta porque não forneceu um argumento necessário para o construtor. Seria necessário passar um valor booleano ou uma String que possa ser convertida em booleano.

Portanto, a única opção que está sintaticamente correta e compila sem erros é a Alternativa B, que é a declaração correta do método main em Java.

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

A) Ou remove o cast desnecessário para String ou faz o cast para o retorno e não para a condição: String x = (String) ((b > c) ? "true" : "false");

B) Correto. Tanto faz "String args[]" ou "String... args". Essa reticência é chamado Varargs e pode ser usado desde java 5

C) O compilador pega as entidade A, B e C e as transformam em subclasses de letra. Se fosse permitido que a enum fosse final, não seria possível fazer com que essas subclasses estendessem letra.

D) String é a única classe wrapper do Java que possui construtor vazio. Para Boolean, tem que passar um boolean ou uma String pelo construtor, sendo que qualquer String diferente de "true" é considerado false, incluindo "1".

Clique para visualizar este comentário

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