Entre os conceitos de programação orientada a objetos, assin...

Próximas questões
Com base no mesmo assunto
Q1800668 Programação
Entre os conceitos de programação orientada a objetos, assinale a alternativa que contempla os apresentados pelo código que segue:
class candidato{ int nota; }; class bomCandidato:public candidato{ int experiencia; bomCandidato(int experiencia){ this.experiencia=experiencia; } };
A alternativa correta é:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: E - Encapsulamento e Herança.

Vamos desvendar juntos o porquê dessa alternativa ser a correta. Primeiro, é importante entender que o código fornecido na questão exemplifica dois conceitos fundamentais da Programação Orientada a Objetos (POO): herança e encapsulamento.

A herança é um mecanismo pelo qual uma classe (conhecida como classe filha ou subclasse) pode herdar características (atributos e métodos) de outra classe (conhecida como classe pai ou superclasse). No exemplo, bomCandidato é uma subclasse que herda o atributo nota da superclasse candidato. Isso é indicado pela sintaxe :public candidato, que estabelece uma relação de herança entre bomCandidato e candidato.

O encapsulamento, por sua vez, é a técnica de ocultar os detalhes internos do funcionamento de uma classe e expor apenas o necessário para o uso externo. Isso é feito tipicamente através do uso de modificadores de acesso, como public, protected, e private. Embora o exemplo não mostre explicitamente o uso de modificadores de acesso, o encapsulamento é um princípio intrínseco de POO e faz parte da estrutura de qualquer classe. A assinatura de um construtor na classe bomCandidato indica que há a intenção de controlar como os objetos são criados, encapsulando a inicialização do atributo experiencia.

Os outros conceitos mencionados nas alternativas, como polimorfismo, não são evidenciados pelo código fornecido. Polimorfismo envolveria métodos sobrepostos ou interfaces que permitem que um objeto seja tratado como se fosse de tipos diferentes. Já o encapsulamento, apesar de não explicitado por meio de modificadores de acesso, é sugerido pela presença de um construtor que é uma forma de controlar a criação e configuração de instâncias de uma classe.

Portanto, a alternativa E - Encapsulamento e Herança é a correta porque identifica corretamente os dois conceitos de POO que estão implícitos no código apresentado na questão.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

GABARITO ERRADO

Há apenas a presença de Herança.

O encapsulamento não se faz presente, uma vez que nenhuma parte da estrutura teve seu acesso restringido (uso do private ou protected).

Encapsulamento: É o mecanismo utilizado para restringir o acesso externo ao comportamento interno de um objeto.

Concordo com o colega, não há encapsulamento aí.

Esse código parece ser C#. Quando não há modificador de acesso explícito, é usado o intern que é semelhante ao public do Java. Portanto, estou mostrando os detalhes internos do Objeto e quebrando o encapsulamento

eu vim ver alguém explicando onde existe encapsulameno na questão ufaa

Concordo, posso acessar os atributos livrementes no programa principal através de objetos.

visualizando o codigo, a unica possibilidade de encapsulamento é o this.experiencia, que recebe o que é passado em bomCandidato(int experiencia). mas nao esta private...

class candidato{

int nota;

};

class bomCandidato:public candidato

{

int experiencia;

bomCandidato(int experiencia)

{

this.experiencia=experiencia;

}

 };

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo