final variables
redeclare?
[/QB]
I think you mean reassign...
The compiler determines that there are no chance that the final variable q will ever be re-assigned, because neither constructor invokes the other. It means that each time an object is created, q will be initialized only once, either in the first or in the second constructor, never in both.
However, adding the this() call to any constructor will cause a compile error because there is a chance that q will be reassigned.