Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FCC 2022

ProgramaçãoLinguagens de programação
Código
fc063835
Banca
FCC
Órgão
TJ-CE
Ano
2022
Cargo
Analista Judiciário - Ciência da Computação - Sistemas da Informação
Considere o trecho de código em Ruby.class Calculadef self.soma(x,y)puts (x+y)enddef self.soma(x,y,2Z)puts (x+y+z)endendConsiderando um ambiente de testes em condições ideais,
  1. Aao se realizar a execução de Calcula .soma (10,8) haverá um erro relativo a número errado de argumentos.
  2. Ba classe Calcula apresenta um exemplo de sobrecarga de métodos.
  3. Cao se realizar a execução de Calcula .soma (10,8,2) haverá um erro relativo a número errado de argumentos.
  4. Dpara indicar que os métodos soma estão sobrecarregados, é necessário colocar a anotação @Overload na linha anterior à definição do 2º método soma.
  5. Epara indicar que os métodos soma estão sobrescritos, é necessário colocar a anotação @override na linha anterior à definição do 2º método soma.
Revelar gabarito e comentário

GabaritoA — ao se realizar a execução de Calcula .soma (10,8) haverá um erro relativo a número errado de argumentos.

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”.

Ruby: Sobrecarga e sobrescrição de métodos

Gabarito: letra A. Em Ruby, não existe sobrecarga de métodos (overloading) como em Java ou C++. A última definição de um método com o mesmo nome sobrescreve a anterior. No código fornecido, o segundo método self.soma (com três parâmetros, supondo que "2Z" seja um erro de digitação para "z") substitui o primeiro (com dois parâmetros). Dessa forma, Calcula.soma(10,8) é chamado com dois argumentos, mas o método espera três, gerando um ArgumentError – erro por número incorreto de argumentos.

1Sobrecarga (overload)
Não existe em Ruby
Última definição vence
2Sobrescrita (override)
Automática (sem anotação)
Substitui definição anterior
3Consequência
Chamada com argumentos da 1ª definição
Erro: número incorreto de argumentos
Ruby: métodos com mesmo nome
LEVELsoulevel.com.br
Ruby: métodos com mesmo nome: Sobrecarga (overload) (Não existe em Ruby, Última definição vence); Sobrescrita (override) (Automática (sem anotação), Substitui definição anterior); Consequência (Chamada com argumentos da 1ª definição, Erro: número incorreto de argumentos)

Alternativa A — ✅ Correta ⟵ GABARITO

Exatamente: a chamada com dois argumentos falha porque o método vigente espera três parâmetros.

Alternativa B — ❌ Incorreta

A classe não apresenta sobrecarga; o que ocorre é sobrescrição (override). Ruby não suporta múltiplas definições com mesmo nome e assinaturas diferentes convivendo.

Alternativa C — ❌ Incorreta

A execução de Calcula.soma(10,8,2) passaria três argumentos, casando com a segunda definição. Portanto, não haveria erro – ao contrário do que a alternativa afirma.

Alternativa D — ❌ Incorreta

Ruby não utiliza anotação @Overload. Esse recurso é próprio de linguagens como Java. Em Ruby, a sobrescrição é automática e não exige qualquer anotação.

Alternativa E — ❌ Incorreta

A anotação @override também não existe em Ruby. Sobrescrita de métodos ocorre naturalmente, sem necessidade de marcadores.

NÃO CAIA NESSA!

A banca tenta confundir os conceitos de sobrecarga (overload) e sobrescrição (override), além de sugerir anotações de Java. Lembre-se: Ruby não tem sobrecarga de métodos; a última definição sempre vence.

Gabarito: letra A.

Link permanente: /questoes/fc063835