Рассмотрим это:
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"
}
}
Я не понимаю. "b" никогда не инициализируется, но будет давать ту же ошибку времени выполнения, что и "c", что является ошибкой времени компиляции. Почему разница между локальными переменными и членами?
Изменить: включение личных членов было моим первоначальным намерением, и вопрос все еще стоит...