Sobre as variáveis e os métodos declarados como private, em ...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: A - I, apenas.
Para entender o gabarito dessa questão é crucial compreender o conceito de visibilidade em Java, que é um dos pilares da programação orientada a objetos. A palavra-chave private é utilizada para definir o nível de acesso de variáveis e métodos dentro de uma classe.
Quando você declara um membro (seja ele um método ou uma variável) como private, você está dizendo que esse membro só pode ser acessado diretamente dentro da própria classe onde foi declarado. Isso significa que outras classes, mesmo aquelas que estão no mesmo pacote (package) ou subclasses derivadas, não têm acesso a esse membro.
Portanto, a afirmação I está correta, pois membros private são, de fato, acessíveis somente pelos membros da própria classe. Isso é um mecanismo de encapsulamento que ajuda a proteger os dados e a implementação interna da classe, permitindo que a classe tenha controle total sobre o que é exposto para outras partes do código.
As afirmações II e III são incorretas:
- A afirmação II sugere que membros private são acessíveis às classes no mesmo pacote, o que não é verdade. Para esse nível de visibilidade, usamos o modificador default (sem modificador explícito), ou protected, que também permite visibilidade para subclasses.
- A afirmação III diz que os membros private são acessíveis para suas classes derivadas, o que também é incorreto. Para permitir esse acesso, utilizamos o modificador protected.
Assim, a resposta correta é a Alternativa A, pois apenas a primeira afirmação reflete corretamente o comportamento do modificador de acesso private no Java.
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
Pessoal, existe uma tabelinha bem legal a respeito do acesso dos membros da classe (atributos e métodos) de acordo com o modificador.
Modificador/Acesso | classe | pacote | subclasse | todos
public | SIM | SIM | SIM | SIM
protected | SIM | SIM | SIM | NÃO
sem modificador | SIM | SIM | NÃO | NÃO
private | SIM | NÃO | NÃO | NÃO
Analisando cada afirmativa, temos:
I. Verdadeiro. O modificador private é o mais restritivo e permite apenas que membros da própria classe acessem um campo ou chame um método declarado com esse modificador.
II. Falso. Todos os modificadores, com exceção do private, permitem que os membros sejam acessados pelas classes definidas no mesmo pacote.
II. Falso. Somente os modificadores public e protected permitem que membros de uma classe sejam acessados pelas suas subclasses.
GABARITO: Alternativa a) I, apenas
Fonte: https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo