Compila no exercício 2 porque a variável é da instância, um atributo da instância, e variável de instância não precisa inicializar e Não Compila no exercício 3 porque a variável é local de um bloco da condição e, por isso, precisa ser inicializada, seria esses os motivos para compilar um e não compilar o outro?
Se a resposta for sim, pq na variável da instância não precisa ser inicializada?
Exercício 2:
class B {
String msg;
void imprime() {
if (!msg.isEmpty())
System.out.println(msg);
else
System.out.println("vazio");
}
}
Exercício 3:
class B {
void imprime() {
String msg;
if (!msg.isEmpty())
System.out.println(msg);
else
System.out.println("vazio");
}
}