Pular para o conteúdo principal

Questão de Programação — Plataforma Java — FCC 2019

ProgramaçãoPlataforma Java
Código
fc057595
Banca
FCC
Órgão
TRF - 3ª REGIÃO
Ano
2019
Cargo
Analista Judiciário - Informática
No método main da classe principal de uma aplicação Java SE foi realizada a chamada abaixo ao método aumentarSalario, da mesma classe, que aumenta o salário em 10%:double salarioNovo, salarioAtual= 10678.67;salarioNovo = aumentarSalario(salarioAtual);O método aumentarSalario pode ser escrito corretamente utilizando
  1. Aprotected static float aumentarSalario(double salarioAtual) { return salarioAtual * 1.1; }
  2. Bpublic static void aumentarSalario(double salarioAtual) { return salarioAtual * 1.1; }
  3. Cpublic static double aumentarSalario(double[ ] salarioAtual) { return salarioAtual * 1.1; }
  4. Dprivate static double aumentarSalario(double sAtual) { return sAtual * 1.1; }
  5. Eprivate static double aumentarSalario(salarioAtual) { return salarioAtual * 0.1;}
Revelar gabarito e comentário

GabaritoD — private static double aumentarSalario(double sAtual) { return sAtual * 1.1; }

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Java – Métodos e modificadores de acesso

Gabarito: letra D. A chamada aumentarSalario(salarioAtual) espera um método estático que receba um double e retorne um double. A única alternativa que atende a todos os requisitos sintáticos e semânticos é a D: private static double aumentarSalario(double sAtual) { return sAtual * 1.1; }.

Alternativa A — ❌ Incorreta

O método declara retorno float, mas a expressão salarioAtual * 1.1 produz um double. Em Java, atribuir um double a float exige cast explícito — não há conversão automática (doublefloat é narrowing). Portanto, ocorre erro de compilação.

Alternativa B — ❌ Incorreta

O método é declarado void, ou seja, não retorna valor. No entanto, o corpo contém return salarioAtual * 1.1;, o que é ilegal para métodos void. Erro de compilação.

Alternativa C — ❌ Incorreta

O parâmetro é double[] (array), mas a chamada passa um double simples. Há incompatibilidade de tipos. Além disso, a expressão salarioAtual * 1.1 não é válida para arrays.

Alternativa D — ✅ Correta ⟵ GABARITO

Atende todos os requisitos:

  • private → acessível dentro da mesma classe.

  • static → pode ser chamado de main.

  • double como parâmetro e retorno → compatível com double salarioAtual e com a atribuição a double salarioNovo.

  • O cálculo sAtual * 1.1 aumenta o salário em 10% e retorna o novo valor.

Alternativa E — ❌ Incorreta

Dois erros graves:

  1. O parâmetro salarioAtual está declarado sem tipo — em Java toda variável deve ter tipo explícito.

  2. O retorno salarioAtual * 0.1 calcula apenas 10% do salário, e não o salário acrescido de 10%.

PEGA ESSA DICA!

Ao declarar um método, verifique sempre a assinatura: tipo de retorno, nome, lista de parâmetros (com tipo para cada um) e modificadores. O corpo deve ser coerente com o tipo de retorno: se void, não use return com valor; se não void, todo caminho deve retornar um valor compatível.

Link permanente: /questoes/fc057595