Entre os conceitos de programação orientada a objetos, assin...
class candidato{ int nota; }; class bomCandidato:public candidato{ int experiencia; bomCandidato(int experiencia){ this.experiencia=experiencia; } };
A alternativa correta é:
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