No curso aprendi que as variáveis de instância/classe são inicializadas com seus valores default antes do construtor ser executado. No código abaixo, vemos uma variável final, então seguindo a lógica, se esta variável é final e é inicializada antes do construtor, por que eu consigo alterá-la dentro do construtor ?
class B{
private final int b;
B(int b) { this.b = b;}
public int getB() { return b; }
public void setB(int b) { b= b; }
}
class A {
public static void main(String[] args) {
B b = new B(10);
b.setB(5);
System.out.println(b.getB());
}
}
será impresso 10