Um programa é um conjunto de instruções escrito em determin...
Um método declarado como static não pode acessar membros não static da classe.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - certo
A questão aborda um conceito importante no contexto da programação orientada a objetos, especificamente sobre o escopo e acesso de métodos e variáveis em Java. Para compreender e resolver essa questão, é necessário conhecer os conceitos de membros static e non-static (ou de instância) dentro de uma classe Java.
O modificador static é usado em Java para indicar que um membro (seja campo, método ou bloco de código) pertence à classe, e não a uma instância específica da classe. Isso significa que o membro pode ser acessado sem a necessidade de criar um objeto da classe, apenas pelo nome da classe.
Por outro lado, membros non-static são associados a instâncias específicas de uma classe. Cada objeto tem sua própria cópia de variáveis de instância, e métodos de instância podem acessar e modificar essas variáveis.
Um método static não está associado a nenhuma instância particular da classe e, portanto, não tem acesso direto aos membros non-static da classe, já que esses membros requerem uma referência de objeto para serem acessados. Para um método static acessar uma variável de instância ou chamar um método de instância, é preciso uma referência a um objeto da classe.
Portanto, a afirmação de que "Um método declarado como static não pode acessar membros não static da classe" é correta, justificando a alternativa C como correta. Em um cenário prático, caso um método static precise interagir com membros non-static, ele deve fazê-lo por meio de um objeto que deve ser fornecido para ele, seja passado como argumento ou instanciado dentro do método.
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
Certo
Em Java, quando um método é declarado como static, ele é associado à classe em vez de a uma instância específica da classe. Isso significa que um método static não pode acessar membros não static (também conhecidos como membros de instância) diretamente, a menos que eles sejam acessados por meio de uma instância específica da classe.
Em outras palavras, um método static não tem acesso aos campos não static (variáveis de instância) da classe diretamente. No entanto, ele pode acessar outros membros static da classe e pode ser chamado sem a necessidade de criar uma instância da classe.
Se você deseja acessar membros não static da classe a partir de um método static, precisará criar uma instância da classe e, em seguida, usar essa instância para acessar os membros não static. Por exemplo:
public class MinhaClasse {
public int membroNaoStatic;
public static void meuMetodoStatic() {
// Não é possível acessar membroNaoStatic diretamente aqui.
}
public void meuMetodoNaoStatic() {
// É possível acessar membroNaoStatic diretamente aqui.
}
}
Portanto, a afirmação de que um método static não pode acessar membros não static da classe é correta.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo