Questão de Programação — Programação Orientada a Objetos — CESPE / CEBRASPE 2024
Programação›Programação Orientada a Objetos
Código
ce168417
Banca
CESPE / CEBRASPE
Órgão
CAGEPA - PB
Ano
2024
Nível
Superior
Cargo
Analista de Sistemas - Sistemas de TI
Tendo em vista que arquitetura e linguagem orientada a objetos (OO) são conceitos fundamentais no desenvolvimento de software, assinale a opção correta.
AA arquitetura de software define a estrutura geral de um sistema, incluindo seus componentes e as interações entre eles, servindo como um projeto para construir e manter um sistema de informação, embora não haja garantia de que esse projeto atenda aos requisitos de desempenho e escalabilidade.
BA manutenibilidade é um benefício da integração de arquitetura em camadas e OO, pois objetos podem ser reutilizados em diferentes partes do sistema ou mesmo em diferentes projetos.
CPolimorfismo na programação OO permite que uma classe derive de outra, reutilizando e estendendo funcionalidades.
DLinguagens orientadas a objetos são projetadas para modelar problemas do mundo real por meio de objetos; os objetos encapsulam dados e comportamentos, promovendo a reutilização e a modularidade do código.
EComo exemplo da arquitetura de software em um contexto orientado a objetos, tem-se a arquitetura em camadas e OO, que conta com as camadas de: apresentação, lógica, acesso a dados, segurança, interoperabilidade.
Revelar gabarito e comentário▾
GabaritoD — Linguagens orientadas a objetos são projetadas para modelar problemas do mundo real por meio de objetos; os objetos encapsulam dados e comportamentos, promovendo a reutilização e a modularidade do código.
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”.
Programação Orientada a Objetos
Gabarito: letra D. A definição de linguagens orientadas a objetos como ferramentas para modelar problemas do mundo real por meio de objetos que encapsulam dados e comportamentos, promovendo reúso e modularidade, é a mais precisa entre as alternativas. As demais contêm erros conceituais, especialmente a confusão entre polimorfismo e herança na alternativa C.
Análise das alternativas
Alternativa A — ❌ Incorreta
A afirmativa sobre arquitetura de software é, em parte, verdadeira, mas o trecho "embora não haja garantia de que esse projeto atenda aos requisitos de desempenho e escalabilidade" é problemático. A arquitetura é justamente o artefato que visa garantir esses atributos de qualidade; a ausência de garantia não é uma característica inerente, mas sim um risco de projeto mal executado. Além disso, a questão foca em OO, e essa alternativa aborda um tema mais amplo, sem relação direta com os conceitos de OO.
Alternativa B — ❌ Incorreta
A manutenibilidade é um benefício da orientação a objetos e da arquitetura em camadas, mas a afirmação de que objetos podem ser reutilizados em diferentes partes do sistema ou projetos é uma verdade parcial. A reutilização é uma vantagem, mas a associação direta com manutenibilidade é indireta. Contudo, o principal erro é que a banca considera que o benefício citado (reutilização) é mais relacionado à OO do que à integração com arquitetura em camadas, e a alternativa não é a melhor opção diante da letra D. Em provas CESPE, a alternativa que melhor define OO é a D.
Alternativa C — ❌ Incorreta
NÃO CAIA NESSA!
A banca troca o conceito de polimorfismo pelo de herança. Polimorfismo é a capacidade de um objeto assumir diferentes formas, geralmente implementada por meio de interfaces ou métodos virtuais (sobrescrita). Herança é o mecanismo que permite que uma classe derive de outra, herdando e estendendo funcionalidades. A alternativa descreve herança, não polimorfismo.
Portanto, a alternativa está incorreta.
Alternativa D — ✅ Correta ⟵ GABARITO
Esta alternativa captura a essência da programação orientada a objetos: modelagem do mundo real por meio de objetos, encapsulamento de dados e comportamentos, reúso e modularidade. É a definição clássica e amplamente aceita.
Alternativa E — ❌ Incorreta
A arquitetura em camadas típica (apresentação, lógica de negócios, acesso a dados) é correta, mas a inclusão de "segurança" e "interoperabilidade" como camadas separadas é inadequada. Esses são aspectos transversais (cross-cutting concerns) que geralmente são tratados em todas as camadas, e não como camadas independentes. Além disso, a expressão "arquitetura em camadas e OO" é redundante, pois OO é um paradigma, não um tipo de arquitetura.