Questão de Programação — Programação Orientada a Objetos — Avança SP 2024
Programação›Programação Orientada a Objetos
Código
qg078059
Banca
Avança SP
Órgão
CISBRA - SP
Ano
2024
Nível
Superior
Cargo
Analista em T.I
Associe os seguintes componentes da programação orientada a objetos com seus respectivos papéis.I) EncapsulamentoII) InterfaceIII) Objetoa) A capacidade de um objeto de ocultar seus dados e métodos do restante do mundo exterior.b) Um pacote de software de estado e comportamento relacionado.c) Um contrato entre a classe e o mundo exterior, e esse contrato é aplicado no momento da construção pelo compilador.
AI - a; II - b; III - c;
BI - a; II - c; III - b;
CI - b; II - c; III - a;
DI - b; II - a; III - c;
EI - c; II - b; III - a;
Revelar gabarito e comentário▾
GabaritoB — I - a; II - c; III - b;
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: Encapsulamento, Interface e Objeto
Gabarito: letra B. A associação correta é: Encapsulamento (I) com a descrição (a) — ocultar dados e métodos do mundo exterior; Interface (II) com a descrição (c) — contrato entre a classe e o mundo exterior, aplicado pelo compilador; e Objeto (III) com a descrição (b) — pacote de software com estado e comportamento. A questão testa a compreensão dos pilares da POO e a distinção entre os conceitos de classe, objeto e interface.
A Programação Orientada a Objetos (POO) é um paradigma que organiza o software em torno de "objetos", que são entidades que combinam dados (atributos) e comportamentos (métodos). Esses objetos são criados a partir de "classes", que funcionam como modelos ou plantas. A POO se apoia em quatro pilares fundamentais: abstração, encapsulamento, herança e polimorfismo. O encapsulamento é o mecanismo que protege os dados internos de um objeto, expondo apenas o que é necessário através de uma interface pública. Isso é alcançado usando modificadores de acesso (como private, protected e public), que controlam quem pode acessar os atributos e métodos. A interface, por sua vez, é um contrato que define um conjunto de métodos que uma classe deve implementar, sem especificar como. Ela estabelece o que um objeto pode fazer, mas não como faz. O objeto é a instância concreta de uma classe, com estado (valores dos atributos) e comportamento (métodos) específicos.
Na prática, imagine uma classe ContaBancaria com atributos privados saldo e titular. O encapsulamento garante que o saldo não possa ser alterado diretamente de fora, mas apenas através de métodos públicos como depositar() e sacar(). Uma interface OperacoesBancarias poderia definir esses métodos, obrigando qualquer classe que a implemente a fornecê-los. Um objeto contaDoJoao seria uma instância dessa classe, com um saldo específico e capaz de executar as operações definidas. A distinção crucial é que a classe é o modelo, o objeto é a materialização do modelo, e a interface é o contrato que define o que o objeto deve oferecer.
A pegadinha desta questão está em confundir o papel da interface com o do objeto. A descrição (c) fala em "contrato" e "aplicado pelo compilador", que é exatamente a definição de interface. Já a descrição (b) fala em "pacote de software de estado e comportamento", que é a definição de objeto. A banca explora a confusão entre esses dois conceitos, que são fundamentais na POO. Guarde a fronteira: interface = contrato; objeto = instância com estado e comportamento.
POO: conceitos-chave: Encapsulamento (Ocultar dados e métodos, Modificadores de acesso (private, protected, public)); Interface (Contrato entre classe e mundo exterior, Aplicado pelo compilador, Define o que, não como); Objeto (Instância concreta da classe, Estado (atributos) + comportamento (métodos))
Alternativa A — ❌ Incorreta
Esta alternativa associa a Interface (II) à descrição (b), que define um "pacote de software de estado e comportamento". Isso está errado, pois essa é a definição de Objeto. A interface não possui estado nem comportamento; ela apenas define um contrato de métodos. O erro aqui é trocar o papel da interface pelo do objeto.
Alternativa B — ✅ Correta ⟵ GABARITO
Esta alternativa faz a associação correta: Encapsulamento (I) com (a) — ocultar dados e métodos; Interface (II) com (c) — contrato aplicado pelo compilador; e Objeto (III) com (b) — pacote de estado e comportamento. Cada conceito está perfeitamente alinhado com sua definição, demonstrando compreensão clara dos pilares da POO.
Alternativa C — ❌ Incorreta
Esta alternativa associa Encapsulamento (I) à descrição (b), que define um "pacote de software de estado e comportamento". Isso é a definição de Objeto, não de encapsulamento. O encapsulamento é o mecanismo de ocultação de dados, não a entidade que possui estado e comportamento. O erro aqui é confundir o pilar com a entidade.
Alternativa D — ❌ Incorreta
Esta alternativa associa Encapsulamento (I) à descrição (b), que é a definição de Objeto, e Interface (II) à descrição (a), que é a definição de Encapsulamento. Há uma dupla troca de conceitos, demonstrando confusão entre os três pilares. O encapsulamento não é um pacote de software, e a interface não é a capacidade de ocultar dados.
Alternativa E — ❌ Incorreta
Esta alternativa associa Encapsulamento (I) à descrição (c), que é a definição de Interface. O encapsulamento não é um contrato aplicado pelo compilador; é o mecanismo de ocultação de dados. O erro aqui é confundir o pilar do encapsulamento com o conceito de interface.