Porque um método estatico nao pode acessar uma variavel não estatica??? Oque isso implica??
Logo, porque um método não estatico pode acessar uma variavel estatica?
Res: O método nao estatico de uma classe sempre poderá chamar um método estatico dela ou acessar uma variavel estatica da classe.
(tenho a resposta mas nao consigo aceitar isso… nao compreendo qual é o problema? oque impede uma static nao ser acessada ou nao poder acessar e blah blah blah… quais sao as regras??)
Simples. Métodos estáticos não podem chamar variáveis ou métodos não-estáticos porque esses dependem de uma instância da classe em questão. Um método estático não pode ter em seu corpo qualquer referência a algo que não seja estático, pois caso contrário, isso implicaria em dependência de instância da classe. Porém o contrário é permitido sim, um método não estático pode chamar um método estático e uma variável não-estática pode referenciar uma variável estática. Isso porque uma instância de uma classe pode chamar coisas não ligadas à instâncias, ou seja, métodos e variáveis estáticas.
Ficou claro agora?
Mephy
imagina um código com com um set dinâmico e o get estático por exemplo:
Algo a = new Algo();
Algo b = new Algo();
a.setValor(5);
b.setValor(10);
Algo.getValor(); // estático
vê se agora faz mais sentido os métodos estáticos não acessarem atributos e métodos não-estáticos ‘-’
gRoOve
Pelo simples fato de que o método estático não saberia qual instância da Classe acionar quando fosse solicitado.
De forma contrária, métodos não-estáticos podem acessar variáveis estáticas pois existem somente UMA, não tem como confundir.