Variáveis e membros não inicializados em Java
Considere isto:
public class TestClass {
private String a;
private String b;
public TestClass()
{
a = "initialized";
}
public void doSomething()
{
String c;
a.notify(); // This is fine
b.notify(); // This is fine - but will end in an exception
c.notify(); // "Local variable c may not have been initialised"
}
}
Eu não entendo. "b" nunca é inicializado, mas gera o mesmo erro em tempo de execução que "c", que é um erro em tempo de compilação. Por que a diferença entre variáveis locais e membros?
Editar: tornar os membros privados foi minha intenção inicial, e a pergunta ainda permanece ...