FC ConcursosFC Concursos

Questão FC373325

Considere o trecho de código em Ruby. class Calcula def self.soma(x,y) puts(x+y) end def self.soma(x,y,z) puts(x+y+z) end end Considerando um ambiente de testes em condições ideais

Linguagens de Programação

FCC · 2022

Considere o trecho de código em Ruby.

 

class Calcula

def self.soma(x,y)

puts(x+y)

end

def self.soma(x,y,z)

puts(x+y+z)

end

 

end

 

Considerando um ambiente de testes em condições ideais,

  1. ao se realizar a execução de Calcula.soma (10,8) haverá um erro relativo a número errado de argumentos.
  2. a classe Calcula apresenta um exemplo de sobrecarga de métodos.
  3. ao se realizar a execução de Calcula.soma (10,8,2) haverá um erro relativo a número errado de argumentos.
  4. para indicar que os métodos soma estão sobrecarregados, é necessário colocar a anotação @Overload na linha anterior à definição do 2o método soma.
  5. para indicar que os métodos soma estão sobrescritos, é necessário colocar a anotação @Override na linha anterior à definição do 2o método soma.
Mostrar resposta e comentário

Gabarito

A

Comentário do professor

Em Ruby, a definição `def self.soma(...)` cria um método de classe. Quando o mesmo nome é declarado duas vezes, a segunda definição substitui a primeira — ou seja, ocorre sobrescrita e só a última assinatura permanece válida.

No código apresentado, a última definição é def self.soma(x,y,z), que exige exatamente três argumentos. Assim, ao executar Calcula.soma(10, 8) o interpretador levantará um ArgumentError, indicando número incorreto de argumentos (por exemplo: wrong number of arguments (given 2, expected 3)).

Portanto, a alternativa correta afirma que a chamada com dois parâmetros causará erro, pois a implementação vigente do método requer três parâmetros obrigatórios.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo