Um programa é um conjunto de instruções escrito em determin...

Próximas questões
Com base no mesmo assunto
Q2262536 Programação
Um programa é um conjunto de instruções escrito em determinada linguagem que diz ao computador o que deve ser feito. Existem muitas formas e diferentes tipos de linguagens de programação, cada qual com uma finalidade específica. A respeito da linguagem Java, julgue o item.
Um método declarado como static não pode acessar membros não static da classe. 

Alternativas

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