Java – Declaração de método estático com array
Gabarito: A. O método cadastraDados é chamado de forma estática (via Aluno.cadastraDados(d)), portanto deve ser declarado como public static. Além disso, ele recebe um array double[] e retorna um array double[] (o valor retornado é atribuído a dados, que foi declarado como double[]).
Analisando as alternativas:
Alternativa A — ✅ Correta ⟵ GABARITO
public static double[] cadastraDados(double[] d) – atende todos os requisitos: modificador static, tipo de retorno double[], parâmetro double[] d. (O espaço em "cadastra Dados" é provavelmente um erro de digitação no enunciado; a sintaxe correta do método é sem espaço, mas conceitualmente é a única opção que corresponde).
Alternativa B — ❌ Incorreta
public static double[] cadastraDados(double d) – o parâmetro é double (escalar), não um array. Não aceitaria a chamada passando um array.
Alternativa C — ❌ Incorreta
public double[] cadastraDados(double[] d) – falta o modificador static. O método não pode ser chamado estaticamente sem ele.
Alternativa D — ❌ Incorreta
public final double[] cadastraDados(double d[]) – Embora final seja permitido, o método não é static. A chamada estaticamente exige static. Além disso, a sintaxe double d[] é válida (outra forma de declarar array), mas a ausência de static a torna inválida.
Alternativa E — ❌ Incorreta
public static double cadastraDados(double[] d) – retorna double, não double[]. Isso geraria erro de compilação porque a variável dados é do tipo double[] e não pode receber um double.
Portanto, a única alternativa que se encaixa perfeitamente é a letra A.