Questão nº 32

Questão de Tecnologia da Informação · FCC TRT17 2022 (nº 32)

FCC2022Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Dver comentário ↓

Considere o programa C# abaixo, que será executado em condições ideais.

using System;
class Identifica {
public void Identidade(String nome, int id){
Console.WriteLine("Nome1: " + nome + ", " + "Id1: " + id);
}
public void Identidade(int id, String nome){
Console.WriteLine("Nome2: " + nome + ", " + "Id2: " + id);
}
public static void Main(String[] args){

I
}
}

Considerando que a saída esperada, ao se executar o programa, é:
Nome1: Carlos Silva, Id1: 1000
Nome2: Cristina Santos, Id2: 2000

A lacuna I deve ser preenchida corretamente por:

Resposta comentada

Gabarito Alternativa D

Em C#, para usar métodos que não são `static` (ou seja, que pertencem a um objeto específico), você primeiro precisa criar uma instância desse objeto a partir de sua classe (o molde). Além disso, a linguagem permite ter vários métodos com o mesmo nome, desde que eles tenham listas de parâmetros diferentes (em tipo, quantidade ou ordem), um conceito chamado sobrecarga de métodos.

(A) Incorreta: Os métodos `Identidade` não são `static`, então não podem ser chamados diretamente de `Main` (que é `static`) sem criar um objeto da classe `Identifica` primeiro. Isso causaria um erro de compilação.
(B) Incorreta: Embora crie o objeto corretamente, a ordem dos argumentos nas chamadas dos métodos está invertida em relação ao que produziria a saída esperada. Por exemplo, `obj.Identidade(1000,"Carlos Silva")` chamaria o método que imprime "Nome2", mas a primeira linha esperada é "Nome1".
(C) Incorreta: Assim como na alternativa (A), os métodos `Identidade` não são `static` e não podem ser chamados diretamente de `Main` sem uma instância do objeto. Isso resultaria em um erro de compilação.
(D) Correta: Primeiro, `Identifica obj = new Identifica();` cria um objeto da classe `Identifica`. Em seguida, `obj.Identidade("Carlos Silva", 1000);` chama o método `Identidade` que aceita `(String, int)`, produzindo a primeira linha da saída esperada. Por fim, `obj.Identidade(2000, "Cristina Santos");` chama o método `Identidade` que aceita `(int, String)`, produzindo a segunda linha da saída esperada.
(E) Incorreta: A linha `Identifica obj = new Identifica();` é declarada duas vezes no mesmo escopo, o que causaria um erro de compilação por tentar declarar uma variável com o mesmo nome (`obj`) novamente.

Fonte: FCC TRT17 2022 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho