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?
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 ‘-’