Observe as frases com relação a linguagem JAVA: “Uma boa prá...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: B — private e public.
Tema central: Encapsulamento em Java e modificadores de acesso. Para proteger os dados de uma classe, os atributos costumam ser privados, e o acesso externo ocorre por meio de métodos públicos (getters e setters). Isso garante controle e integridade do estado do objeto.
Resumo teórico:
- private: acesso apenas dentro da própria classe.
- public: acesso de qualquer código.
- protected: acesso no mesmo pacote ou por subclasses; não serve para “qualquer externo”.
- package-private (sem modificador): acesso apenas no mesmo pacote.
Por que a B está correta? A afirmação diz que a visibilidade do atributo é “apenas para a própria classe” (isso é private) e que o acesso externo ocorre via métodos GET/SET (logo, os métodos devem ser public). Portanto: atributo private e métodos public.
Exemplo prático:
public class Pessoa {
private String nome; // atributo encapsulado
public String getNome() { // acesso controlado
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
Análise das alternativas incorretas:
- A) public e private: o atributo público quebra o encapsulamento; métodos privados não seriam acessíveis externamente.
- C) public e protected: o atributo continua público (sem proteção); métodos protected não são acessíveis “por qualquer classe”, apenas no mesmo pacote ou por subclasses.
- D) protected e private: atributo protegido ainda é visível fora via subclasses/mesmo pacote; métodos privados impedem o acesso externo prometido.
Estratégia para interpretar questões assim:
- Identifique palavras-chave: “apenas para a própria classe” indica private para o atributo.
- “acesso externo” por métodos sugere que eles devem ser public.
- Desconfie de protected quando o enunciado fala em acesso geral externo; protected não atende a esse requisito.
Fontes recomendadas:
- Oracle: “Controlling Access to Members of a Class” — https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
- Java Language Specification, 6.6 (Access Control) e 8.3 (Fields) — https://docs.oracle.com/javase/specs/
Dica extra: em alguns casos, use apenas get (sem set) para imutabilidade e maior segurança.
Resposta: B — private e public.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo