Olá pessoal. Estou estudando Java, e não entendi o que ocorre no código a seguir. Uma hora ele inicializa com zero uma variável nunca inicializada. Outra hora, dá erro de compilação.
Criei a seguinte classe:
package food;
public abstract class Fruit {
private String sabor;
private String cor;
private int madura;
public String getSabor()
{
return sabor;
}
public String getCor()
{
return cor;
}
public int getMadura()
{
return madura;
}
public void setMadura(int valor)
{
madura = valor;
}
public abstract void amadurecer();
}
E em seguida, esta:
package food;
public class Apple extends Fruit {
public void amadurecer()
{
this.setMadura(this.getMadura() + 1);
}
}
No main, criei este código:
{
Apple a = new Apple();
System.out.println(a.getMadura());
a.amadurecer();
System.out.println(a.getMadura());
//int b;
//System.out.println(b);
}
E o retorno foi:
0
1
Como pode ter retornado 0 se o valor da variável não foi inicializado em nenhum momento?
Se eu tento descomentar as linhas do MAIN, dá erro. Se o Java inicializa as variáveis com zero, porque dá erro de compilação nas linhas do ‘int b’, dentro do void main?
Valeu pela ajuda 

