Questão de Programação — Linguagens de programação — Quadrix 2023
- Código
- qg024527
- Banca
- Quadrix
- Órgão
- COFFITO
- Ano
- 2023
- Nível
- Superior
- Cargo
- Analista de Tecnologia da Informação
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: E — ERRADO. A afirmação está incorreta porque a classe Paciente no código apresentado não possui nenhum método de validação; ela contém apenas propriedades (Nome, Idade, Telefone) e um construtor que simplesmente atribui os valores recebidos. A validação dos dados, se existisse, seria responsabilidade de um método específico (como Validar()) ou do próprio fluxo do programa, não do construtor da classe.
A questão explora um conceito fundamental de programação orientada a objetos: a distinção entre construtor e método de validação. O construtor é um método especial invocado no momento da criação do objeto, cuja função é inicializar o estado do objeto (atribuir valores às propriedades). Ele não realiza, por padrão, nenhuma verificação de consistência dos dados — a menos que o programador explicitamente escreva essa lógica dentro dele. No código fornecido, o construtor Paciente(string nome, int idade, string telefone) apenas faz Nome = nome; Idade = idade; Telefone = telefone;, sem qualquer if, throw ou outra estrutura de validação.
Para que houvesse validação, seria necessário, por exemplo, verificar se a idade é maior que zero, se o nome não é vazio, ou se o telefone tem um formato válido. Isso poderia ser feito dentro do construtor, mas também poderia ser feito em um método separado, como bool Validar(), ou até mesmo no Main antes de criar o objeto. A afirmação do enunciado atribui ao método Paciente (que na verdade é o construtor) uma responsabilidade que ele não tem no código apresentado.
A pegadinha da banca está em confundir o construtor com um método de validação. O construtor é um método especial que inicializa o objeto, mas não valida dados por padrão. A validação é uma lógica adicional que o programador deve implementar explicitamente, seja no construtor, em um método dedicado, ou no fluxo principal do programa. No código dado, não há nenhuma validação implementada — o construtor apenas atribui os valores recebidos às propriedades.
Guarde a distinção: construtor ≠ método de validação. O construtor inicializa; a validação verifica. É exatamente essa fronteira que a questão explora.
A afirmação diz que "a validação dos dados do paciente, antes de realizar o agendamento, é realizada pelo método Paciente". Isso está errado por dois motivos: (1) Paciente não é um método, é uma classe; (2) a classe Paciente não possui nenhum método de validação — apenas propriedades e um construtor que atribui valores sem verificação. A validação, se existisse, seria feita por um método específico (como Validar()) ou no fluxo do programa, não pelo construtor.
Conclusão: O item está ERRADO, pois a classe Paciente não realiza validação de dados no código apresentado. O gabarito é a letra E.
Gabarito: letra E
Link permanente: /questoes/qg024527