Questão 55 · Informática: Programação e algoritmos
Considere o código C# a seguir. using System; namespace MinhaProva { class Exemplo { static void Main(string[] args) { Pessoa Ex = new Pessoa(); Ex.Nome = "Joana"; Console.WriteLine(Ex.Nome); } } } A implementação correta da classe referida no código acima é:
- A) namespace MinhaProva { class Exemplo { private string nome; public string Nome { get { return nome; } set { nome = value; } } } }
- B) namespace MinhaProva { class Pessoa { private string nome; public string Nome { get { return nome; } set { nome = value; } } } }
- C) namespace MinhaProva { class Pessoa { private string nome; public string Nome { get return nome; set nome = value; } } } }
- D) namespace MinhaProva { class Pessoa { private string nome; public string Nome { get() { return nome; } set(string value) { nome = value; } } } }
- E) namespace MinhaProva { class Pessoa { private string nome; public string Nome { public get string { return nome; } public set string { nome = value; } } } }
Marque a alternativa correta:
Gabarito: B
Gabarito definitivo divulgado pela banca FGV (BANESTES 2021).
Comentário
Gabarito: B.
O código principal cria um objeto da classe Pessoa, atribui "Joana" à propriedade Nome e imprime o valor. Para funcionar, a classe Pessoa precisa existir no namespace MinhaProva, com uma propriedade pública Nome com get e set. A alternativa B declara a classe Pessoa, um campo privado nome e a propriedade pública Nome, com get { return nome; } e set { nome = value; }.
- (A) declara a classe Exemplo, e não Pessoa; o código usa new Pessoa().
- (C) escreve get e set sem as chaves dos blocos, o que é sintaxe inválida em C#.
- (D) escreve get() e set(string value), com parênteses e parâmetro, o que não é a forma de declarar acessores de propriedade em C#.
- (E) usa public get string e public set string, que não é sintaxe válida de propriedade.
Dica: em C#, os acessores de uma propriedade são blocos get { ... } e set { ... }, sem parênteses, e o set usa a palavra value. Confira também o nome da classe exigido pelo código.
Fundamentos: classes e propriedades em C# · modificadores de acesso e campos privados · sintaxe de get e set
Comentário gerado pela Cravei IA a partir do enunciado e do gabarito definitivo divulgado pela banca, e conferido por uma verificação automática. A IA pode errar: o gabarito oficial sempre prevalece.
Fonte: prova FGV BANESTES 2021 (Desenvolvimento de Sistemas), questão 55, com o gabarito definitivo da banca. Comentário: Equipe Cravei · como fazemos e revisamos.