Неинициализированные переменные и члены в Java
Учти это:
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», что является ошибкой времени компиляции. Почему разница между локальными переменными и членами?
редактироватьПервоначально я собирался сделать членов закрытыми, и вопрос до сих пор стоит ...