Java: métodos e saída no console
Gabarito: letra C. O código define a classe HelloJEE com o método main, que imprime a string "JEE v8 & JDK 17: " concatenada com o retorno da chamada sum(5, 3). O método sum recebe dois inteiros e retorna a soma deles, ou seja, 5 + 3 = 8. Portanto, a saída no console é JEE v8 & JDK 17: 8.
O código apresentado é um exemplo clássico de programa Java: uma classe pública com um método main, que é o ponto de entrada da aplicação. Dentro do main, a instrução System.out.println(...) é responsável por exibir uma mensagem no console, seguida de uma quebra de linha. O operador + em Java, quando usado com uma String e um valor numérico, realiza a concatenação — ou seja, converte o número para texto e o junta à string. Nesse caso, a string "JEE v8 & JDK 17: " é concatenada com o resultado da chamada do método sum(5, 3).
O método sum é um método estático que recebe dois parâmetros do tipo int e retorna um int. A palavra-chave static indica que o método pertence à classe, e não a uma instância específica — por isso ele pode ser chamado diretamente dentro do main, que também é estático. A operação realizada é uma simples adição aritmética: a + b. Com a = 5 e b = 3, o resultado é 8. Não há nenhum erro de compilação, pois a sintaxe está correta: o método sum é declarado antes de ser usado, os tipos são compatíveis e a concatenação de String com int é válida em Java.
A pegadinha desta questão está em confundir a ordem dos parâmetros ou a operação realizada. O método sum soma os dois valores — não subtrai, não multiplica, não divide. Além disso, a saída inclui o texto fixo "JEE v8 & JDK 17: " seguido do número, sem ponto final. As alternativas que apresentam 5 ou 3 isoladamente ignoram a soma, e a alternativa que omite o número desconsidera a concatenação. A alternativa que aponta erro de compilação é incorreta, pois o código é perfeitamente válido.
Guarde o critério decisivo: o método sum retorna a soma dos argumentos, e o + entre string e número concatena. É exatamente essa combinação que separa a alternativa correta das demais.
Alternativa A — ❌ Incorreta
Apresenta o valor 5, que é o primeiro argumento passado ao método sum. O erro está em ignorar a operação de adição: o método não retorna o primeiro parâmetro, mas sim a soma de ambos. O valor 5 seria a saída se o método retornasse apenas a, o que não ocorre.
Alternativa B — ❌ Incorreta
Apresenta o valor 3, que é o segundo argumento passado ao método sum. O erro é análogo ao da alternativa A: o método não retorna o segundo parâmetro, mas a soma a + b. O valor 3 seria a saída se o método retornasse apenas b.
Alternativa C — ✅ Correta ⟵ GABARITO
A saída correta é JEE v8 & JDK 17: 8. O método sum(5, 3) retorna 5 + 3 = 8, e esse valor é concatenado à string "JEE v8 & JDK 17: " pelo operador +. O resultado final é exatamente o texto apresentado nesta alternativa.
Alternativa D — ❌ Incorreta
Apresenta apenas o texto JEE v8 & JDK 17, sem o número resultante da soma. O erro está em omitir a concatenação do retorno do método sum. Como o código chama sum(5, 3) dentro da instrução println, o valor 8 obrigatoriamente aparece na saída.
Alternativa E — ❌ Incorreta
Afirma que ocorre erro de compilação. O código está sintaticamente correto: a classe HelloJEE é pública, o método main tem a assinatura padrão public static void main(String[] args), e o método sum é declarado corretamente como static int sum(int a, int b). Não há nenhum erro de compilação, pois todos os tipos são compatíveis e a concatenação de String com int é válida.
Gabarito: letra C — a saída no console é JEE v8 & JDK 17: 8.