Após observar as Figuras 12(a), 12(b) e 12(c), analise as a...
Quais estão corretas?
Comentários
Veja os comentários dos nossos alunos
Questão aparentemente dócil sobre PROGRAMAÇÃO, porém se você está em divida com padrões de projeto( GOF ) vai ser complicado;
I. Correta. Eu sei que você está falando: "Mas Max, olha o 2ª aspectos do enunciado da questão: os programas estão funcionando corretamente; Como irá violar o encapsulamento se esta funcionando?"
Prontamente eu falo: Funcionar é diferente de estar correto. Vocês entenderão nesta imagem: https://image.slidesharecdn.com/cmoderno2019-190419232425/95/escrevendo-c-moderno-2019-mvpconf-27-638.jpg?cb=1555716455
A nossa querida Gangue dos 4 ( Gof) fala em seu livro que HERANÇA VIOLA O ENCAPSULAMENTO! Pergunto para vocês: Há herança na questão? Observem a figura 12 (a). Simples e direto
.
II. Correta, olhando a figura 12 (a) vemos que somente temos 2 atributos na classe A , ambos privados, r e s;
.
III. Correta, estaremos criando métodos com o mesmo nome, mas com assinaturas diferentes, ou seja, sobrecarga de métodos, um tipo de polimorfismo ;
Se você errou não se culpe, acredito que esta foi a questão mais difícil desta prova!
GABARITO ALTERNATIVA E
A classe B não respeita o encapsulamento porque seus atributos estão públicos.
"O encapsulamento protege o acesso direto (referência) aos atributos de uma instância fora da classe onde estes foram declarados. Esta proteção consiste em se usar modificadores de acesso mais restritivos sobre os atributos definidos na classe. Depois devem ser criados métodos para manipular de forma indireta os atributos da classe"
https://pt.wikibooks.org/wiki/Programa%C3%A7%C3%A3o_Orientada_a_Objetos/Encapsulamento
Para aplicar o conceito de encapsulamento, que consiste em "esconder" o atributo, os atributos da classe B deveriam ser privados, além de ser implementados métodos get e set para manipulá-los.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo